ios - KVO和ARC如何移除Observer

标签 ios cocoa-touch key-value-observing automatic-ref-counting

如何从 ARC 下的对象中删除观察者? ?我们是否只添加观察者而忘记删除它?如果我们不再手动管理内存,我们从哪里退出观察?

例如,在 View Controller 上:

[self.view addObserver:self
            forKeyPath:@"self.frame"
               options:NSKeyValueObservingOptionNew 
               context:nil];

以前,我会在 View Controller 的 dealloc 方法中调用 removeObserver:

最佳答案

您仍然可以在 ARC 下实现 -dealloc,这似乎是移除键值观察的合适位置。您只是不再从此方法中调用 [super dealloc]

如果您之前覆盖了 -release,那么您做事的方式是错误的。

关于ios - KVO和ARC如何移除Observer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6959896/

相关文章:

ios - 在 AppDelegate.m 上设置 label.text

ios - 如果我撤销分发证书,现有版本会发生什么情况?

ios - predicateWithFormat 非常慢

objective-c - 添加对象从数组 : not copying into global NSMutableArray

objective-c - 如果不删除其他对象的观察者,KVO 会导致循环

ios - 以编程方式配置 SWRevealViewController?

ios - 具有 ModelIO 的混合拓扑(四/三)

iphone - UITableView 被拖动时,performSelector 无法运行?

objective-c - NSArrayController 上的 SelectionIndexes 只返回一个值

ios - 无法在 Swift 中观察 UIPageControl 的 currentPage 变化