NSUserDefaults изменение значений между запусками - PullRequest
1 голос
/ 28 июля 2010

У меня есть следующий код в applicationWillTerminate в делегате приложения:

NSLog(@"Source: %d", [[NSUserDefaults standardUserDefaults] integerForKey:@"Source"]);

И у меня тот же код в моем applicationDidFinishLaunching в том же делегате приложения.

При выходе изapp, журнал показывает одно значение (скажем, 101), а когда я перезапускаю приложение, журнал показывает другое значение (скажем, 105).Впоследствии изменение значения (скажем, 102) в пользовательских значениях по умолчанию работает правильно, поскольку при повторном выходе из приложения в метод applicationWillTerminate записывается правильное значение (на этот раз 102).Однако повторный запуск журналов 105 приложения повторно, независимо от того, на какое значение оно было изменено.

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

Понятия не имею, что здесь происходит.У кого-нибудь есть идеи?

1 Ответ

4 голосов
/ 28 июля 2010

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

например

[_defaults setInteger:1 forKey:@"key"];
[_defaults synchronize];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...