applicationWillTerminate работает до тех пор, пока я не выключаю iPhone - PullRequest
0 голосов
/ 01 апреля 2009

, чтобы сохранить некоторые переменные моих приложений, которые я использую:

- (void) applicationWillTerminate: (UIApplication *) application {

NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
[prefs setFloat: self.viewController.sLabel.contentOffset.y forKey:@"floatKey"];    
[prefs setObject:self.viewController.newText forKey:@"stringVal"];
[prefs synchronize];

}

и для их получения с помощью кнопки я делаю следующее:

- (IBAction) riprendi: (id) отправитель {

NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];  
float myFloat = [prefs floatForKey:@"floatKey"];

// некоторые действия здесь

}

На симуляторе все работает. Однако, используя его на реальном iPhone, сохранение и извлечение переменных работает только при нажатии кнопки «Домой», выходе из приложения и повторном открытии, но НЕ при выключении / включении iPhone. В этом случае переменные просто теряются при повторном открытии приложения ...

Что мне не хватает ?? На самом деле это сводит меня с ума: (

Спасибо большое;) Fabio

Ответы [ 2 ]

6 голосов
/ 04 апреля 2009

Если вы хотите нажать кнопку блокировки в верхней части телефона, говоря «включение / выключение», это не сработает, поскольку блокировка телефона не приводит к закрытию приложения. Ваш метод applicationWillTerminate: вызывается только при выходе из приложения на домашний экран или в другое приложение. Когда пользователь нажимает кнопку «Режим сна», applicationWillResignActive: будет отправлено вашему приложению-делегату.

Руководство по программированию Apple iPhone OS содержит раздел, посвященный обработке прерываний.

1 голос
/ 31 марта 2011

Согласно документации Apple

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

Если вы хотите убедиться, что что-то сохранено, вы должны вызвать «синхронизация» в ваших настройках.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...