gpt4 book ai didi

iphone - 从通知中心取消观察者注册的好地方是什么?

转载 作者:行者123 更新时间:2023-12-03 20:26:47 25 4
gpt4 key购买 nike

当我将观察者添加到默认通知中心时,我将在哪里取消注册?

示例:我有一个 UIView 子类,它位于 View Controller 内。该子类是 FooBarNotification 的观察者。如果发布此通知,该 View 将收到它。但现在, View Controller 决定丢弃 View 。最好的地方是 View 本身的-dealloc方法吗?

是否有类似内存管理规则之类的规则?例如:我必须在注册观察者的地方注销它吗?即 View 在其 init 方法中注册自身,因此它应该在其 -dealloc 方法中注销自身?

(不是谈论推送通知,而是 NSNotificationCenter)

最佳答案

唯一的规则是确保观察者的生命周期比注册期限长。

由于 -addObserver:...不会 -retain 观察者,如果注册比观察者本身的生命周期更长,你的程序将会崩溃。

Apple 没有指定任何取消注册观察者的规则。 -dealloc 没问题。只需使用常识即可。例如。如果该观察者即使在 View Controller 将其丢弃后仍可能持续存在,那么您应该在该丢弃过程中取消注册,否则观察者可能会收到不需要的通知。

关于iphone - 从通知中心取消观察者注册的好地方是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2677383/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com