Существует множество ответов, связанных с использованием регистрации пользовательских значений по умолчанию, и я выглядел тяжело, и я все еще в шоке от поведения, которое я вижу.registerDefaults не отражается в настройках app
В моем наборе настроек у меня есть один тумблер, который я даю идентификатору 'sharing', давая ему значение по умолчанию YES. Я вижу этот переключатель в приложении настроек, но по умолчанию он не включен. Даже если я удалю приложение с телефона и установлю снова.
В моем методе didfinishlaunchingwithoptions у меня есть следующие:
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSDictionary *appDefaults = [NSDictionary dictionaryWithObject:@"YES" forKey:@"sharing"];
[defaults registerDefaults:appDefaults];
[defaults synchronize];
Если я тест, чтобы увидеть:
NSLog(@"%d",[defaults boolForKey:@"sharing"]);
по умолчанию установлен, но это не отражается в приложении настройки.
Если я затем перейти в приложение настройки и флип переключатель включения и проверки значения:
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
BOOL enabled = [defaults boolForKey:@"sharing"];
Это будет по-прежнему приводить к YES, который я хотел бы ожидать.
И тогда я переверните его выключен и тест снова:
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
BOOL enabled = [defaults boolForKey:@"sharing"];
Это будет НЕТ, как ожидается, и соединение теперь работает нормально.
Итак, в основном все работает нормально, за исключением того, что перед изменением настройки по умолчанию существует программно, но не отображается визуально в приложении настроек.
Надеюсь, кто-то может указать, что мне не хватает!
Благодаря
Analog to Matt, у меня было значение по умолчанию, чтобы ввести String вместо Boolean в моем наборе параметров. Там же проблема. – Bjinse