Почему NSUserDefaults не сохраняет мои значения?

Привет я пытаюсь использовать 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"]);

вышеупомянутый код всегда возвращает меня пустой. Кто-то может помочь мне?

52
задан KlimczakM 6 August 2015 в 01:58
поделиться

2 ответа

Если вы закроете приложение, нажав кнопку «Домой» (в симуляторе или на устройстве), ваши NSUserDefaults будут сохранены.

Если вы завершите работу своего приложения, нажав «Стоп» в Xcode (в симуляторе или на устройстве), ваши NSUserDefaults могут быть сохранены, но есть большая вероятность, что этого не произойдет. NSUserDefaults периодически сохраняет любые изменения, и если вы завершите процесс до того, как они будут сохранены, они исчезнут. Вы можете принудительно сохранить сохранение, позвонив:

[[NSUserDefaults standardUserDefaults] synchronize];



Дополнение:

В iOS4 (этот ответ был первоначально написан, когда iOS3 была общедоступной), ваши NSUserDefaults могут не сохраняться при нажатии кнопки «Домой». Ручной вызов [[NSUserDefaults standardUserDefaults] synchronize] в applicationDidEnterBackground: должен гарантировать, что ваши NSUserDefaults сохранены правильно (это действительно должно быть встроенным поведением IMO) .

204
ответ дан 7 November 2019 в 08:57
поделиться

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

2
ответ дан 7 November 2019 в 08:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: