我试图让键值观察为 NSMutableArray 工作。下面是观察类 MyObservee 的 .h 文件:
@interface MyObservee : NSObject {
@private int someValue;
@private NSMutableArray *someArray;
}
@property (readwrite,assign) int someValue;
- (NSMutableArray *)someArray;
@end
MyObserver 类实现了 observeValueForKeyPath:ofObject:change:context:。这是我添加观察者的方法:
MyObservee *moe = [[MyObservee alloc] init];
MyObserver *mobs = [[MyObserver alloc] init];
[moe addObserver:mobs
forKeyPath:@"someArray"
options:(NSKeyValueObservingOptionNew | NSKeyValueObservingOptionOld)
context:NULL];
[moe.someArray addObject:@"hi there"];
为什么 addObject: 消息没有作为 someArray 键路径的更改触发?我有一种感觉,这里有一些我不完全理解的东西。