在这篇关于垃圾收集的文章中,作者指出:
在 Mac OS X 10.6 及更高版本中,NSNotificationCenter 被弱引用,因此 您不再需要在代码中执行以下操作
[[NSNotificationCenter defaultCenter] removeObserver:self name:kObservationName object:nil];
这是在某处正式记录的吗?removeObserver:
的文件仍然说:
请务必调用此方法(或 removeObserver:name:object:)以前 通知观察者或 中指定的任何对象 addObserver:selector:name:object: 被解除分配。
如果您正在构建垃圾回收应用程序,那么确实不需要注销对象来接收观察或通知。
但是垃圾回收现在已被弃用,而不是你应该用于新项目的东西。
如果使用 ARC 或 MRC,则仍需要删除对象。最好的地方通常是dealloc
方法。