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