Привет я пытаюсь использовать NSUserDefaults
сохранить некоторые значения по умолчанию в базе данных. Я могу сохранить значения в NSUserDefaults
(даже регистрировавший это NSLog
). Теперь мне нужны значения в делегате приложения, когда приложение перезапущено. Но я ничего не вкладываю NSUserDefaults
. Следующее является моим кодом от моего класса, где я сохраняю значения в NSUserDefaults
:
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
[prefs setObject:appDel.dictProfile forKey:@"dict"];
NSLog(@"%@",[prefs valueForKey:@"dict"]);
Следующее является моим кодом из Приложения Delegagte:
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
NSLog(@"%@",[prefs valueForKey:@"dict"]);
вышеупомянутый код всегда возвращает меня пустой. Кто-то может помочь мне?
Если вы закроете приложение, нажав кнопку «Домой» (в симуляторе или на устройстве), ваши NSUserDefaults
будут сохранены.
Если вы завершите работу своего приложения, нажав «Стоп» в Xcode (в симуляторе или на устройстве), ваши NSUserDefaults
могут быть сохранены, но есть большая вероятность, что этого не произойдет. NSUserDefaults
периодически сохраняет любые изменения, и если вы завершите процесс до того, как они будут сохранены, они исчезнут. Вы можете принудительно сохранить сохранение, позвонив:
[[NSUserDefaults standardUserDefaults] synchronize];
В iOS4 (этот ответ был первоначально написан, когда iOS3 была общедоступной), ваши NSUserDefaults
могут не сохраняться при нажатии кнопки «Домой». Ручной вызов [[NSUserDefaults standardUserDefaults] synchronize]
в applicationDidEnterBackground:
должен гарантировать, что ваши NSUserDefaults
сохранены правильно (это действительно должно быть встроенным поведением IMO) .
Вы не сказали, работаете ли вы на устройстве или в симуляторе, но если вы перезапустите приложение в симуляторе,все настройки будут сброшены между запусками, если вы запускаете из Xcode. Настройки будут сохранены только в том случае, если вы перезапустите симулятор.