2012-07-26 32 views
1

我有一個自定義表視圖細胞並且它也通過使用該方法觀察另一個對象的鍵:的UITableViewCell與KVO

[_anotherObject addObserver:myCell 
       forKeyPath:@"killed" 
        options:NSKeyValueObservingOptionNew 
        context:0]; 

_anotherObject是在我的定製表格視圖細胞類伊娃。

我知道我應該在某個時候刪除myCell作爲觀察者,但我不知道該怎麼辦。

據我所知,可能的地方是:-dealloc & -prepareForReuse

回答

0

添加dealloc方法到您的UITableViewCell子類:

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

類似的東西應該爲你工作。這樣,你不會得到那些討厭的「一個AnotherObject類的實例0x21bb1010被釋放,而關鍵值觀察者仍然註冊它」,消息了。