【问题标题】:Where is the best place to invoke `removeObserver:name:object:`调用“removeObserver:name:object:”的最佳位置在哪里
【发布时间】:2011-07-02 03:25:00
【问题描述】:

哪里是调用removeObserver:name:object: 的最佳位置,因为dealloc 方法并不总是像NSObject 类参考中提到的那样执行??

【问题讨论】:

    标签: objective-c observer-pattern dealloc


    【解决方案1】:

    如果你指的是this note

    重要提示:请注意,当应用程序终止时,可能不会向对象发送dealloc 消息,因为进程的内存在退出时会自动清除——让操作系统更有效地清理资源而不是调用所有的内存管理方法。

    它说dealloc 通常不能保证仅在应用程序终止时被调用。所以即使dealloc没有被调用,你的应用程序使用的资源仍然会被操作系统清除。这意味着您的所有对象无论如何都会消失,因为您的应用程序不再存在。

    因此,从通知中心移除通知观察者的最佳位置仍然是在观察者的dealloc 方法内。

    【讨论】:

    • 是的,我指的是那张纸条!我假设尽管对象已被破坏,但观察者仍然存在。但我可能错了!谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-23
    • 1970-01-01
    • 2021-12-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多