applicationWillTerminate задерживается, есть ли более быстрый метод для использования при выходе? - PullRequest
1 голос
/ 11 сентября 2009

Я использую - (void) applicationWillTerminate: (NSNotification *) уведомление, чтобы сохранить данные при выходе из моей игры, а затем загрузить их, если пользователь нажмет кнопку загрузки в следующий раз. Сохранение и загрузка работают нормально, но я заметил, что между нажатием кнопки «Домой» и сохранением данных существует некоторая задержка. Всякий раз, когда я выходил, перезапускался и загружался, таймер игры продолжал тикать, и состояния менялись до вызова applicationWillTerminate; например игровые объекты в движении загружаются в разных местах, чем то, что я видел в последний раз, нажимая кнопку «домой». Интересно, что, если я быстро нажму кнопку «Домой» ... она, похоже, выйдет из приложения, и появятся элементы управления музыкой. Однако, если я выйду таким образом, когда загружу данные снова, таймер не продолжит работу - игровые объекты не будут двигаться с их скоростями. Есть ли способ обойти это?

1 Ответ

0 голосов
/ 12 сентября 2009

Вы смотрели на UIApplicationWillResignActiveNotification? Что-то вроде следующего во время загрузки / инициализации в вашем «главном контроллере» или UIApplication подклассе:

[[NSNotificationCenter defaultCenter] addObserver:self /* or whatever */ selector:@selector(applicationWillTerminate:) name:UIApplicationWillResignActiveNotification object:NULL];
...