Как я могу зафиксировать нажатие кнопки «Стоп» в отладчике iOS? - PullRequest
1 голос
/ 29 марта 2012

Я отлаживаю приложение для iOS, и мне нужно вызвать некоторый код очистки в некоторых классах C ++ (на самом деле, я просто хочу, чтобы вызывались их деструкторы).Когда я запускаю приложение через XCode с подключенным устройством, а затем останавливаю его нажатием кнопки остановки, вызывается none из методов делегата приложения (я специально смотрю на applicationWillTerminate).Однако, если я возьму устройство и нажму кнопку «Домой», оно успешно вызовет как applicationDidEnterBackground, так и applicationWillResignActive.

Что я делаю не так?Я попытался удалить все ссылки на любой код C ++, фактически создав пустое приложение для iOS, и я просто не могу получить applicationWillTerminate для вызова или даже dealloc в контроллере корневого представления.Я даже пытался использовать метод signal() вместе с SIGABRT, SIGKILL и т. Д., И это ничего не делает (к тому же я не могу вызвать методы Objective-C из метода C в любом случае).Как я могу реагировать на нажатие кнопки остановки?

Ответы [ 2 ]

2 голосов
/ 29 марта 2012

Вы не делаете ничего плохого, система просто убивает ваше приложение, когда вы нажимаете на кнопку stop.

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

1 голос
/ 29 марта 2012

Для большей точности методов, вызываемых при выходе из приложения / вводе в фоновом режиме, проверьте эту страницу

Как сказал @rckoenes, когда вы останавливаете приложение с помощью отладчика, оно убиваетit.

Если ваше приложение имеет фоновую возможность (UIApplicationExitsOnSuspend = NO, это режим по умолчанию), то при выходе из приложения оно помещается в фоновом режиме, а не завершается.

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