私は iOS でクラスを実装しており、KVO に準拠するためにDocumentsManager呼び出される多対多のプロパティを作成したいと考えています。documentsそれはほとんど動作しているようで、私の KVO アクセサーとミューテーター メソッドが呼び出されます。しかし、私が気になるのは、私のインスタンスNSMutableArrayを呼び出すことによって返されたプロキシで直接行われた変更がmutableArrayValueForKey:、オブザーバーに通知されないことです。
したがって、このコードは の挿入については通知しますが、 の挿入については通知しませ@"aaa"ん。それは期待される動作ですか?もしそうなら、その方法を使用する利点は何ですか?@"bbb"docsProxymutableArrayValueForKey:
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!