Ano*_*dya 16 cocoa objective-c nsnotificationcenter automatic-ref-counting
我们是否必须removeObserver:明确发送已作为观察者添加到NSNotificationCenter之前的对象?
我有点困惑,无法找到确切的答案.
请详细提供我,包括为什么我们需要显式删除Observer,以及为什么编译器没有隐式地将它放在类/应用程序中?
rck*_*nes 13
是的,你需要调用removeObserver:,如果你没有,观察到的类可以调用观察者的所有解除分配的实例.
从10.11开始,观察员不需要在其解除分配方法中取消注册.
NSNotificationCenter和NSDistributedNotificationCenter不再向可能已解除分配的已注册观察者发送通知.如果观察者能够存储为归零弱引用,则底层存储将观察者存储为归零弱引用.或者,如果对象不能被弱存储(因为它具有会阻止运行时能够弱存储对象的自定义保留/释放机制),则该对象被存储为非弱的归零引用.这意味着观察者不需要在他们的释放方法中取消注册.[1]
| 归档时间: |
|
| 查看次数: |
4257 次 |
| 最近记录: |