2014-10-28 22 views
1

我正在ResultDataClassself之间工作。我想观察xxxResultData的财产,我尝试了以下(在viewDidLoad)。KVO:邮件已收到但未处理

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"; 
    } 
} 

但我得到这个

An -observeValueForKeyPath:ofObject:change:context: message was received but not handled. 
Key path: toCalDouble 
Observed object: <ResultDataClass: 0x1093845e0> 

我GOOGLE了一些,但仍然不能使出来。 任何人都知道我做错了什么?

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

回答

0

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

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

非常感谢。该错误已修复,但在self.showText中没有显示任何内容。我错过了什么? – user 2014-10-28 10:07:55

+0

@user什么是'self.showText'?它是UITextField还是UILabel?检查self.showText是否为零,如果将self.showText添加到层次结构中,则检查其框架,确保它是可见的。 – KudoCC 2014-10-28 11:22:42

+0

这是一个在main.storyboard中添加的UITextView。我也用另一种方法使用它。这么晚才回复很抱歉。 – user 2014-10-30 04:28:58

相关问题