当前位置:  开发笔记 > IOS > 正文

删除观察员是否必须(必要)?

如何解决《删除观察员是否必须(必要)?》经验,为你挑选了1个好方法。

有一个观察者,我需要在整个应用程序生命周期中使用它,我是否应该删除它?我认为GC应用程序关闭后会删除它,对吗?如果是,那么什么时候将其删除?在deinit



1> Rikh..:

如果您正在为iOS 8及之前提供支持.你必须删除里面的观察者deallocviewWillDisappear.可在此处找到更详细的答案.

如果您从iOS 9开始提供支持,则不再需要手动删除观察者.来自apple docs:

在OS X 10.11和iOS 9.0中,NSNotificationCenter和NSDistributedNotificationCenter将不再向可能已解除分配的已注册观察者发送通知.如果观察者能够存储为归零弱引用,则底层存储将把观察者存储为归零弱引用,或者如果对象不能被弱存储(即它具有可以阻止运行时的自定义保留/释放机制)从能够弱对象存储对象,它将对象存储为非弱的归零引用.这意味着观察者不需要在他们的释放方法中取消注册.

可在此处找到更详细的说明.

注意:但是在使用上面链接的doc中提到的基于块的通知时要小心.

推荐阅读
郑谊099_448
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有