gpt4 book ai didi

iphone - 如何在 UIView 中删除 NSNotification 的观察者?

转载 作者:太空狗 更新时间:2023-10-30 03:36:20 30 4
gpt4 key购买 nike

我在 initWithFrame: 下创建的自定义 UIView 中添加了一个观察者。

[[NSNotificationCenter defaultCenter] addObserver:self 
selector:@selector(updateZipFromLocation:)
name:@"zipFoundFromLocation"
object:nil];

问题是,这个 View 是一个 subview 。当 View 再次加载时,它再次调用 initWithFrame 消息,从而添加两个观察者等。当 View 将要消失时,如何移除观察者?因为它是一个 UIView,所以它说 viewWillDisappear:(BOOL)animated 不是一个有效的方法。有什么想法吗?

最佳答案

您说过 initWithFrame: 被调用了不止一次,所以我认为这意味着 View 正在被销毁并重新创建。你可以在dealloc中以观察者的身份移除 View ,当 View 不再被任何人保留时将调用它:

- (void)dealloc {
[[NSNotificationCenter defaultCenter] removeObserver:self];
[super dealloc];
}

关于iphone - 如何在 UIView 中删除 NSNotification 的观察者?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4515486/

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