我正在尝试观察对NSMutableString isDetailView
的更改:
-(void)viewDidLoad {
[self addObserver:self forKeyPath:@"isDetailView" options:NSKeyValueObservingOptionNew context:nil];
[isDetailView setString:@"YES"];
}
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
{
NSLog(@"obersedValueFOrKeyPath:%@", keyPath);
}
但是从不调用observeValueForKeyPath方法。有什么想法吗?
答案 0 :(得分:5)
您不是要更改属性,只更改它指向的对象的内容。如果您将isDetailView
设为正常字符串并执行
[self setIsDetailView: @"YES"]
它会起作用。
顺便说一句,以“是”开头的属性通常被认为是布尔值,在这种情况下看起来也更合适。