我在ResultDataClass
和self
之间工作。我想观察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";
}
}
我用谷歌搜索了一些,但仍然无法解决问题。
谁知道我做错了什么?
谢谢你,对不起我的英语。
答案 0 :(得分:0)
在视图控制器观察到resultData
的密钥被解除分配之前,停止观察,或者通知将被发送到一个被解除分配的实例。
- (void)dealloc {
ResultDataClass *resultData = [ResultDataClass getInstance];
[resultData removeObserver:self forKeyPath:@"xxx"] ;
}