Я ищу быстрый метод, который действует как onDestroy() в android. Я хочу, чтобы он не вызывался при нажатии кнопки «Домой», его следует вызывать только при полном выходе из приложения. Я пытался использовать метод deinit, но он так и не был вызван.
Эквивалент onDestroy() для IOS
Ответы (4)
Подходящим эквивалентом в среде iOS является applicationWillTerminate(_:)
внутри AppDelegate
.
Имейте в виду, что асинхронные операции не могут выполняться должным образом.
Если пользователь нажал кнопку «Домой» и перешел в экранное меню телефона, то приложение находится в фоновом состоянии. Эта функция будет вызываться:
optional func applicationDidEnterBackground(_ application: UIApplication)
Если пользователь закрыл приложение, дважды нажав кнопку «Домой» и проведя пальцем вверх по приложению, или проведя приложение в фоновом режиме более 3 минут, будет вызван этот метод:
optional func applicationWillTerminate(_ application: UIApplication)
Обе функции уже есть в вашем классе AppDelegate.
Надеюсь это поможет!
Эквивалент iOS не существует. Ты можешь использовать
optional func applicationWillResignActive(_ application: UIApplication)
он вызывается, когда приложение выходит из состояния переднего плана.
or
optional func applicationWillTerminate(_ application: UIApplication)
этот вызывается только во время работы приложения, т. е. в большинстве случаев он не будет вызываться, когда приложение находится в фоновом режиме, если только оно не имеет специальных разрешений.
deinit
не будет вызываться при завершении работы приложения, потому что его цель — выполниться при уничтожении объекта для освобождения памяти. Когда приложение завершается, весь процесс уничтожается вместе со стеком памяти, поэтому освобождать память бессмысленно.
Раньше в iOS был метод viewDidUnload, но он устарел с iOS 6. Другой вариант, поскольку многие люди упоминают applicationWillTerminate, вы могли бы зарегистрироваться для получения уведомления UIApplicationWillTerminate, связать его с функцией и делать в нем все, что хотите. функции, такие как очистка и тому подобное.