我想监视一个 NSCountedSet 以查看其内容是否发生变化。设置 KVO 似乎可以编译,但没有被触发。第一个问题:你能观察一组吗?如果是这样,那么此消息是否有问题?
[subViewA addObserver:subViewB forKeyPath:@"countedSet" options:0 context:NULL];
如果有帮助,我真的只是想监控集合中的(对象数量)的计数。
编辑 - 这是观察者(subViewB):
- (void)observeValueForKeyPath:(NSString *)keyPath
ofObject:(id)object
change:(NSDictionary *)change
context:(void *)context {
if ([keyPath isEqual:@"countedSet"]) {
NSLog(@"Set has changed");
}
}
Edit2 - 将 addObserver 消息从 subView 移动到 viewController。所以我试图让一个 subView 观察另一个 viewController 的 subViews 中的 NSCountedSet。关键路径是“相对于接收者”——我假设它是 subViewA。