恢复应用程序时iOS崩溃:"applicationDidBecomeActive:]: unrecognized selector sent to instance"



我有一个观察者,该观察者检查应用程序何时活动并调用applicationDidBecomeActive。当我删除该代码时,没有任何崩溃,但是我需要该代码。

我在ViewDidAppear中调用addActiveObserver,在ViewDidDisappear中拨打removeActiveObserver,但是当我在每个设置每个断点时,只有ViewDidAppear被击中。

当我点击"主页"按钮然后再次使用应用程序时,我会得到以下崩溃:

applicationDidBecomeActive:]: unrecognized selector sent to instance

viewDidAppear/ viewDidDisappear

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)
}

applicationDidBecomeActive

func applicationDidBecomeActive(_ notification: Notification) {
    // Do work
}

您不需要选择器中的 UIApplicationDelegate零件,因为它涉及应用程序的一般代表中的function ,而不是在自定义类中你正拥有的。您应该删除它。

NotificationCenter.default.addObserver(
    self,
    selector: #selector(applicationDidBecomeActive(_:)),
    name: .UIApplicationDidBecomeActive,
    object: nil)

相关内容

最新更新