带KVO的UITableViewCell

带KVO的UITableViewCell,uitableview,key-value-observing,Uitableview,Key Value Observing,我有一个自定义表视图单元格,它还使用以下方法观察另一个对象的键: [_anotherObject addObserver:myCell forKeyPath:@"killed" options:NSKeyValueObservingOptionNew context:0]; \u另一个对象是自定义表视图单元格类中的ivar 我知道我应该在某个时候将myCell作为观察者删除,但我不

我有一个自定义表视图单元格,它还使用以下方法观察另一个对象的键:

[_anotherObject addObserver:myCell
                 forKeyPath:@"killed"
                    options:NSKeyValueObservingOptionNew
                    context:0];
\u另一个对象
是自定义表视图单元格类中的ivar

我知道我应该在某个时候将myCell作为观察者删除,但我不知道什么时候该删除


据我所知,可能的位置有:
-dealloc
&
-prepareforeuse

向UITableViewCell子类添加dealloc方法:

-(void)dealloc {
    for (AnotherObject *object in self.subviews) {
        if ([object isKindOfClass:[AnotherObject class]]) {
            [object removeObserver:self forKeyPath:@"killed"];
        }
    }
}

类似的东西应该适合你。这样,您就不会再收到那些令人讨厌的“类AnotherObject的实例0x21bb1010被释放,而键值观察器仍在向其注册”消息

向UITableViewCell子类添加dealloc方法:

-(void)dealloc {
    for (AnotherObject *object in self.subviews) {
        if ([object isKindOfClass:[AnotherObject class]]) {
            [object removeObserver:self forKeyPath:@"killed"];
        }
    }
}
类似的东西应该适合你。这样,您就不会再收到那些令人讨厌的“类AnotherObject的实例0x21bb1010被释放,而键值观察器仍在向其注册”消息