有一个观察者,我在整个应用程序生命周期中都需要它,我应该删除它吗?
我认为GC
应用程序关闭后将删除它,对吗?
如果是的话,我什么时候删除它?在deinit
?
如果您为 iOS 8 及之前版本提供支持。你必须移除里面的观察者dealloc
or viewWillDisappear
。可以找到更详细的答案here https://stackoverflow.com/a/15941336/4539192.
如果您从 iOS 9 开始提供支持,则不再需要手动删除观察者。来自苹果文档:
在 OS X 10.11 和 iOS 9.0 NSNotificationCenter 和
NSDistributedNotificationCenter 将不再向
可能被取消分配的注册观察员。如果观察者能够
存储为零弱引用,底层存储将
将观察者存储为调零弱参考,或者如果
对象不能弱存储(即它有一个自定义的保留/释放
阻止运行时存储的机制
弱对象)它将将该对象存储为非弱归零
参考。这意味着观察员无需取消注册
在他们的释放方法中。
可以找到更详细的解释here https://developer.apple.com/library/content/releasenotes/Foundation/RN-Foundation/index.html#10_11NotificationCenter.
Note:但是,在使用上面链接的文档中提到的基于块的通知时要小心。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)