如何声明弱通知
How to declare weak notification
可能标题没有提供很好的描述,请阅读以下内容。
我有一个设置为监听事件的通知:
NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(self.checkIfNotificationsWereTurnedOnAfterAlertShowing), name: UIApplicationWillEnterForegroundNotification, object: UIApplication.sharedApplication())
然后我想删除此通知的观察者。
我发现我需要像这样使用 deinit:
deinit {
NSNotificationCenter.defaultCenter().removeObserver(UIApplicationWillEnterForegroundNotification)
print("deinit")
}
但问题是当我关闭视图控制器时,程序永远不会执行 deinit 函数。
在此 answer 中,我发现这可能是由于强引用。
我检查了很多链接,但无法找到如何为通知声明弱引用。
那么如何声明一个弱通知呢?
希望我的问题很清楚。
期待您的帮助。
我找不到用 deinit
处理这个问题的方法,所以我决定删除 viewWillDisappear
中的观察者,这对我来说效果很好。由 Rob Napier 在上面的评论中建议
可能标题没有提供很好的描述,请阅读以下内容。
我有一个设置为监听事件的通知:
NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(self.checkIfNotificationsWereTurnedOnAfterAlertShowing), name: UIApplicationWillEnterForegroundNotification, object: UIApplication.sharedApplication())
然后我想删除此通知的观察者。 我发现我需要像这样使用 deinit:
deinit {
NSNotificationCenter.defaultCenter().removeObserver(UIApplicationWillEnterForegroundNotification)
print("deinit")
}
但问题是当我关闭视图控制器时,程序永远不会执行 deinit 函数。 在此 answer 中,我发现这可能是由于强引用。
我检查了很多链接,但无法找到如何为通知声明弱引用。 那么如何声明一个弱通知呢?
希望我的问题很清楚。
期待您的帮助。
我找不到用 deinit
处理这个问题的方法,所以我决定删除 viewWillDisappear
中的观察者,这对我来说效果很好。由 Rob Napier 在上面的评论中建议