Вопрос проверяет понимание того, когда iOS действительно уведомляет приложение о завершении.
applicationWillTerminate вызывается, когда приложение завершается управляемым образом. Это может произойти при завершении приложения пользователем или системой в некоторых сценариях. Однако при убийстве приложения из Suspended этот метод не вызывается. Полагаться на него для сохранения данных нельзя.
Этот метод часто понимают неправильно и используют не по назначению.
applicationWillTerminate может быть вызван:
при завершении приложения пользователем
при завершении приложения системой в активном состоянии
при остановке приложения в симуляторе
Метод не вызывается, если:
приложение было в Suspended
система выгружает приложение из памяти
устройство выключается
приложение аварийно завершилось
Разрешено:
минимальная очистка ресурсов
логирование
лёгкие операции
Запрещено:
сетевые запросы
длительные вычисления
сохранение критичных данных
applicationWillTerminate — ненадёжная точка жизненного цикла. Все важные действия нужно выполнять раньше, при уходе в фон.