gpt4 book ai didi

iphone - 调用addObserver和removeObserver方法的可能位置

转载 作者:行者123 更新时间:2023-12-03 16:06:34 25 4
gpt4 key购买 nike

我有一种情况, subview 向其父 View 发送通知。现在,我在 viewWillAppear: 中调用 addObserver: ,在 viewWillDisappear: 中调用 removeObserver: 。但是,我猜这是不正确的,因为刷新 View 时调用 viewWillAppear:

[[NSNotificationCenter defaultCenter] addObserver: (id)observer selector: (SEL)aSelector name: (NSString *)aName object: (id)anObject];

[[NSNotificationCenter defaultCenter] removeObserver: (id)observer name: (NSString *)aName object: (id)anObject];

谢谢。

最佳答案

事实上,这是一个坏主意。当内存不足时,您的 View Controller 可能会收到内存警告。在这种情况下,默认行为是清除您的 View (如果您当前不在屏幕上)。在这种情况下,您可以获得第二次发送的 viewDidLoad 消息(在内存事件之后,当您的 View 由导航 Controller 带回到屏幕上时)。因此,您将拥有同一对象的两次注册,但只有一次删除(在其释放中)

更好的解决方案是设置一个标志表示您已注册,或者在 init 方法中注册。

关于iphone - 调用addObserver和removeObserver方法的可能位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/404522/

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