私は iOS でクラスを実装しており、KVO に準拠するためにDocumentsManager
呼び出される多対多のプロパティを作成したいと考えています。documents
それはほとんど動作しているようで、私の KVO アクセサーとミューテーター メソッドが呼び出されます。しかし、私が気になるのは、私のインスタンスNSMutableArray
を呼び出すことによって返されたプロキシで直接行われた変更がmutableArrayValueForKey:
、オブザーバーに通知されないことです。
したがって、このコードは の挿入については通知しますが、 の挿入については通知しませ@"aaa"
ん。それは期待される動作ですか?もしそうなら、その方法を使用する利点は何ですか?@"bbb"
docsProxy
mutableArrayValueForKey:
NSMutableArray *docsProxy = [[DocumentsManager instance] mutableArrayValueForKey:@"documents"];
[[DocumentsManager instance] addObserver:self forKeyPath:@"documents" options:NSKeyValueObservingOptionNew context:NULL];
[[DocumentsManager instance] insertObject:@"aaa" inDocumentsAtIndex:0]; // OK
[docsProxy insertObject:@"bbb" atIndex:0]; // no notification!