iPhone. Не должен нажимать кнопку «Домой», чтобы вызывать dealloc UIApplicationDelegate - PullRequest
1 голос
/ 21 апреля 2010

Я поместил NSLogs во все мои классы, включая мой подкласс UIApplicationDelegate. Мне любопытно - и немного нервничаю - почему я не вижу их эха, когда нажимаю кнопку «Домой». Я бегу в симуляторе XCode.

Поскольку iPhone / iPad запускает одно приложение за раз, не нажимает ли кнопка «Домой» все следы запущенного приложения?

Спасибо
Дуг

Ответы [ 4 ]

4 голосов
/ 21 апреля 2010

Чак прав, сделка не имеет значения в этот момент. Если вы хотите что-то сделать по истечении срока действия вашего приложения, реализуйте это в классе делегата приложения:

- (void)applicationWillTerminate:(UIApplication *)application {
   // goodbye...
}
3 голосов
/ 21 апреля 2010

Когда приложение закрывается, его память просто освобождается. Dealloc не вызывается, он не проходит иди или собирай 200 долларов. Это нормально и предназначено.

0 голосов
/ 22 апреля 2010

Вы также можете подумать о дополнительной поддержке многозадачности, которая была объявлена. Очевидно, что детали все еще находятся под NDA, но нажатие Home не обязательно останавливает ваше приложение.

И подумайте о различных обстоятельствах, когда ваше приложение уже может быть быстро завершено (например, если поступает вызов, и в системе заканчивается ОЗУ). Выполните очистку с помощью сообщений жизненного цикла приложения.

0 голосов
/ 21 апреля 2010

Вы должны реализовать - (void) applicationWillTerminate: (UIApplication *) application { } этот метод будет вызван, когда пользователь нажмет кнопку домой.

...