当我恢复应用程序时 iOS 崩溃:“applicationDidBecomeActive:]: unrecognized selector sent to instance”

发问者

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

我调用addActiveObserverinViewDidAppearremoveActiveObserverin ViewDidDisappear,但是当我在每个上设置断点时,只会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选择器中部分,因为它指的是应用程序的通用委托中的函数而不是您拥有的自定义类中的函数你应该删除它。

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

Related 相关文章

热门标签

归档