ToggleSwitch в настройках не работает в iPhone? - PullRequest
4 голосов
/ 23 мая 2011

В моем комплекте настроек есть один тумблер, но он не работает в первый раз.Когда я снова изменил значение в настройках, оно работает корректно.

Даже я синхронизируюсь перед использованием значения:

NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];

[userDefaults synchronize];

if([userDefaults boolForKey:@"KeyName"]) {

    //Do Some Work
}

Что мне теперь делать?

Ответы [ 2 ]

5 голосов
/ 23 мая 2011

Я предполагаю, что вы столкнулись с этой проблемой, так как вы не зарегистрировали значения по умолчанию.

[[NSUserDefaults standardUserDefaults] registerDefaults:[NSDictionary dictionaryWithObjectsAndKeys:@"defaultValueFOrKey", @"Key", nil]];

В обычной практике мы создадим файл plist со значениями по умолчанию для всех ключей в комплекте настроек для этой цели и зарегистрируем его как

[[NSUserDefaults standardUserDefaults] registerDefaults:[NSDictionary dictionaryWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"Defaults" ofType:@"plist"]]];
4 голосов
/ 23 мая 2011

Я думаю, что здесь вы столкнулись с довольно странной проблемой, заключающейся в том, что настройки в вашем комплекте настроек не загружаются до тех пор, пока пользователь не запустит приложение настроек в первый раз.

Прямо из Apple:

Для вновь установленных приложений значения предпочтений по умолчанию из комплекта настроек приложения не устанавливаются до тех пор, пока не запустится приложение настроек.Это означает, что если пользователь запускает ваше приложение до запуска настроек, значения по умолчанию, указанные в вашем пакете настроек, недоступны.

Для получения дополнительной информации см .: Документация Apple

...