KVO:已收到消息但未处理

时间:2014-10-28 06:28:36

标签: ios objective-c key-value-observing

我在ResultDataClassself之间工作。我想观察xxx的{​​{1}}属性,我尝试了以下内容(ResultData)。

viewDidLoad

我测试了以下观察结果。

ResultDataClass *resultData = [ResultDataClass getInstance];
[resultData addObserver:self forKeyPath:@"xxx" options:NSKeyValueObservingOptionNew context:NULL];

但我得到了这个

-(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context {

    self.showText.text = @"test1";

    if([keyPath isEqualToString:@"xxx"]) {
        self.showText.text = @"test2";
    }
}
我用谷歌搜索了一些,但仍然无法解决问题。 谁知道我做错了什么?

谢谢你,对不起我的英语。

1 个答案:

答案 0 :(得分:0)

在视图控制器观察到resultData的密钥被解除分配之前,停止观察,或者通知将被发送到一个被解除分配的实例。

- (void)dealloc {
    ResultDataClass *resultData = [ResultDataClass getInstance];
    [resultData removeObserver:self forKeyPath:@"xxx"] ;
}