NSMutableArray で key-value-observing を機能させようとしています。以下は、監視対象クラスである 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 キー パスの変更としてトリガーされないのはなぜですか? ここで私が完全に理解していない何かがあると感じています。