当我恢复应用程序时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)