【发布时间】:2011-07-02 03:25:00
【问题描述】:
哪里是调用removeObserver:name:object: 的最佳位置,因为dealloc 方法并不总是像NSObject 类参考中提到的那样执行??
【问题讨论】:
标签: objective-c observer-pattern dealloc
哪里是调用removeObserver:name:object: 的最佳位置,因为dealloc 方法并不总是像NSObject 类参考中提到的那样执行??
【问题讨论】:
标签: objective-c observer-pattern dealloc
如果你指的是this note:
重要提示:请注意,当应用程序终止时,可能不会向对象发送
dealloc消息,因为进程的内存在退出时会自动清除——让操作系统更有效地清理资源而不是调用所有的内存管理方法。
它说dealloc 通常不能保证仅在应用程序终止时被调用。所以即使dealloc没有被调用,你的应用程序使用的资源仍然会被操作系统清除。这意味着您的所有对象无论如何都会消失,因为您的应用程序不再存在。
因此,从通知中心移除通知观察者的最佳位置仍然是在观察者的dealloc 方法内。
【讨论】: