如何从 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/