我有一个观察者检查应用程序何时变为活动状态并调用applicationDidBecomeActive
. 当我删除该代码时,没有任何崩溃,但我需要该代码。
我调用addActiveObserver
inViewDidAppear
和removeActiveObserver
in 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] 删除。
我来说两句