Симулятор iPhone и приложениеWillTerminate()

Когда мое приложение запускается в симуляторе iPhone, метод делегата

- (void)applicationWillTerminate:(UIApplication *)application

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

После нажатия кнопки "домой" и повторного запуска приложения, нажатие кнопки "домой" не вызывает метод делегата.

Что здесь происходит? Я что-то недопонимаю?

Ответ 1

Я подозреваю, что он вызывается, но вы путаетесь, потому что после нажатия кнопки "Главная" в симуляторе вы закончили текущий сеанс в Xcode. Вероятно, у вас есть NSLog в вашем методе applicationWillTerminate:, да? Как только вы нажмете кнопку "Домой", NSLog больше не отображается в консоли запуска Xcode. Если вы откроете /Applications/Console.app, я ожидаю, что они появятся там.

Ответ 2

- (void)applicationWillTerminate:(UIApplication *)application

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

- (void)applicationDidEnterBackground {

теперь используется, когда пользователь нажимает кнопку "домой". Если (как я уже говорил ранее) вы отключили многозадачность для своего приложения или у пользователя нет устройства с поддержкой нескольких задач.