gpt4 book ai didi

objective-c - NSNotification、addObserver 和 removeObserver - ViewDidUnload 和 dealloc 中的 removeObserver?

转载 作者:行者123 更新时间:2023-11-28 23:17:30 26 4
gpt4 key购买 nike

我想添加一个 View Controller 作为通知的观察者。

调用选择器方法时,我会提醒用户。我希望只有当此 View Controller 是顶 View Controller 时才会出现此警报。

我想在 viewDidLoad 方法中将其添加为观察者。但是在哪里更好地移除 View Controller 作为观察者?

如果我在 viewDidUnloaddealloc 中都删除它会不会有问题?

最佳答案

没有。根据the documentation :

从接收者的调度表中删除指定给定观察者的所有条目。

如果没有这样的条目,则无需删除任何内容,所以这不是问题。

但是,根据您的使用方式,将它添加为 viewDidLoad 中的观察者并不意味着它只会在该 View Controller 是“顶 View Controller ”时使用(例如,如果您有多个选项卡并从一个选项卡移动到另一个选项卡,除非您收到内存警告,否则当您离开它们时,其他(不可见)选项卡的 View 将不会被卸载。

根据您的目标,最好在 viewDidAppear 上添加观察者(如果是,则在 viewWillDisappear 上移除)。

关于objective-c - NSNotification、addObserver 和 removeObserver - ViewDidUnload 和 dealloc 中的 removeObserver?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5531499/

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