gpt4 book ai didi

objective-c - 在 iOS 5 ARC 中移除一个 NSNotificationCenter 观察者

转载 作者:IT王子 更新时间:2023-10-29 08:03:44 24 4
gpt4 key购买 nike

我有一个基于 iOS 5 ARC 的项目,我很难确定我应该在哪里删除我在 UIViewController 中注册的 NSNotificationCenter 观察的观察者. SO 上的类似帖子说这应该在 -dealloc 方法中完成。尽管在 ARC 项目中不需要此方法,但我已将其添加到以下代码中:

- (void)dealloc {

[[NSNotificationCenter defaultCenter] removeObserver:self];

}

作为测试,我打开 UIViewController(在 UINavigationController 中),执行一些触发通知的操作,然后通过点击返回将其从堆栈中弹出按钮。然后我重新打开 UIViewController,并执行更多操作来触发通知,但请注意每个回调都被调用了两次 - 这表明之前的通知尚未取消注册。重复此过程只会导致每个回调被调用多次,因此它们似乎永远不会注销。

如有任何帮助,我们将不胜感激!

最佳答案

很明显您的 dealloc 方法没有被调用(removeObserver 调用也没有)。

为什么不在 viewDidUnload:viewWillDisappear: 方法中删除 UIViewController 的观察者?

关于objective-c - 在 iOS 5 ARC 中移除一个 NSNotificationCenter 观察者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8372841/

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