我有一个自定义表格视图单元格,它还使用以下方法观察另一个对象的键:
[_anotherObject addObserver:myCell
forKeyPath:@"killed"
options:NSKeyValueObservingOptionNew
context:0];
_anotherObject
是我的自定义表格视图单元格类中的ivar。
我知道我应该在某个时候删除myCell
作为观察员,但我不知道应该什么时候做。
据我所知,可能的地方是:-dealloc
& -prepareForReuse
答案 0 :(得分:0)
在您的UITableViewCell子类中添加dealloc方法:
-(void)dealloc {
for (AnotherObject *object in self.subviews) {
if ([object isKindOfClass:[AnotherObject class]]) {
[object removeObserver:self forKeyPath:@"killed"];
}
}
}
类似的东西对你有用。这样你就不会得到那些令人讨厌的“一个实例0x21bb1010的类AnotherObject被解除分配,而键值观察者仍然注册它,”消息了。