当我恢复应用程序时iOS崩溃:“;ApplicationIDBECOMEACTIVE::发送到实例的选择器“无法识别”;
我有一个观察者,它检查应用程序何时变为活动状态,并调用当我恢复应用程序时iOS崩溃:“;ApplicationIDBECOMEACTIVE::发送到实例的选择器“无法识别”;,ios,swift,Ios,Swift,我有一个观察者,它检查应用程序何时变为活动状态,并调用applicationdibecomeactive。当我删除该代码时,不会出现任何崩溃,但我需要该代码 我在viewdide中调用addActiveObserver,在viewdide中调用removeActiveObserver,但当我在每个上设置断点时,只有viewdide会被命中 当我点击home(主页)按钮,然后再次点击应用程序时,出现以下崩溃: applicationIDBECOMEACTIVE:]:无法识别的选择器发送到实例 vi
applicationdibecomeactive
。当我删除该代码时,不会出现任何崩溃,但我需要该代码
我在viewdide中调用addActiveObserver
,在viewdide中调用removeActiveObserver
,但当我在每个上设置断点时,只有viewdide
会被命中
当我点击home(主页)按钮,然后再次点击应用程序时,出现以下崩溃:
applicationIDBECOMEACTIVE:]:无法识别的选择器发送到实例
viewdide出现
/viewdide消失
:
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
addActiveObserver()
}
override func viewDidDisappear(_ animated: Bool) {
super.viewDidDisappear(animated)
removeActiveObserver()
}
addActiveObserver
/removeActiveObserver
func addActiveObserver() {
NotificationCenter.default.addObserver(
self,
selector: #selector(UIApplicationDelegate.applicationDidBecomeActive(_:)),
name: NSNotification.Name.UIApplicationDidBecomeActive,
object: nil)
}
func removeActiveObserver() {
NotificationCenter.default.removeObserver(self,
name:NSNotification.Name.UIApplicationDidBecomeActive,
object:nil)
}
ApplicationIDBecomeActive
:
func applicationDidBecomeActive(_ notification: Notification) {
// Do work
}
选择器中不需要uiapplicationelegate
部分,因为它引用的是应用程序的常规委托中的函数,而不是您正在使用的自定义类中的函数。你应该移除它
NotificationCenter.default.addObserver(
self,
selector: #selector(applicationDidBecomeActive(_:)),
name: .UIApplicationDidBecomeActive,
object: nil)
选择器中不需要uiapplicationelegate
部分,因为它引用的是应用程序的常规委托中的函数,而不是您正在使用的自定义类中的函数。你应该移除它
NotificationCenter.default.addObserver(
self,
selector: #selector(applicationDidBecomeActive(_:)),
name: .UIApplicationDidBecomeActive,
object: nil)