如何声明弱通知

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 在上面的评论中建议