Я сделал некоторые настройки в моем Settings.bundle, которые хорошо отображаются в приложении «Настройки». Однако мои настройки всегда возвращают нуль, когда я их читаю. Я знаю, что мне нужно установить значение по умолчанию при первом запуске. Но даже после этого и перейдите в меню настроек (которое также должно установить значения по умолчанию) - когда я их прочитаю, я всегда получаю нуль.Настройки iPhone (NSUserDefaults) не работают, ключи всегда возвращают nil
Даже когда я установил значение по умолчанию и сразу прочитал его, я получаю нуль!
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSDictionary *appDefaults = [NSDictionary dictionaryWithObject:@"YES" forKey:@"displaySunTimes"];
[defaults registerDefaults:appDefaults];
[defaults synchronize];
bool test =[defaults boolForKey:@"displaySunTimes"];
NSLog(@" Value %@", test);
Вот начало моего root.plist
<dict>
<key>StringsTable</key>
<string>Root</string>
<key>PreferenceSpecifiers</key>
<array>
<dict>
<key>Type</key>
<string>PSGroupSpecifier</string>
<key>Title</key>
<string>Display Sunrise/Sunset times for your location.</string>
</dict>
<dict>
<key>Type</key>
<string>PSToggleSwitchSpecifier</string>
<key>Title</key>
<string>Sunrise/Sunset</string>
<key>Key</key>
<string>displaySunTimes</string>
<key>DefaultValue</key>
<true/>
<key>TrueValue</key>
<string>YES</string>
<key>FalseValue</key>
<string>NO</string>
</dict>
По-прежнему не работает :(Как странно. Как будто ключ «dislaySunTimes» не устанавливается правильно. – paranoidroid
Я отредактировал свой ответ. Посмотрите, разрешает ли он вашу проблему ... –
Предпочитаю b99. подписанный знак. –