Как правильно обрабатывать applicationWillTerminate в приложении для iPhone? - PullRequest
1 голос
/ 18 июня 2009

В настоящее время я экспериментирую с написанием приложения для iPhone и испытываю некоторые затруднения с пониманием того, как правильно выйти из приложения.

По сути, у меня есть контроллер представления, который отображает таблицу данных для пользователя. В то же время, когда приложение запускается, оно запускает новый поток для получения данных с сервера и обновления таблицы в фоновом режиме. Данные записываются в локальную базу данных sqlite.

Меня беспокоит то, что без надлежащей очистки и завершения вполне возможно, что рабочий поток может быть остановлен в неприятном месте (например, во время записи) и оставить поврежденную базу данных sqlite. Я хотел бы сигнализировать поток, чтобы выйти чисто, если приложение попросили прекратить. Но, насколько я могу судить, dealloc даже не вызывается для большинства моих объектов, поэтому на самом деле ничего не выходит чисто. Сейчас я пытаюсь обработать applicationWillTerminate и, возможно, вызываю какой-то специальный метод finalize для одного или двух важных классов.

Итак ...

  1. Есть ли гарантированное окно времени, когда я должен ответить и выйти корректно с applicationWillTerminate называется?
  2. Есть ли другие предложения для чистого выхода?

1 Ответ

2 голосов
/ 18 июня 2009

когда вызывается applicationWillTerminate, у вас есть 5 секунд, чтобы сделать все, что вы хотите

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

http://developer.apple.com/iphone/library/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/ApplicationEnvironment/ApplicationEnvironment.html

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