Một lớp có thuộc tính (và instance var) kiểu NSMutableArray với các trình truy cập tổng hợp (thông qua @property
). Nếu bạn quan sát mảng này bằng cách sử dụng:
[myObj addObserver:self forKeyPath:@"theArray" options:0 context:NULL];
Và sau đó chèn một đối tượng vào mảng như sau:
[myObj.theArray addObject:NSString.string];
Thông báo ObserValueForKeyPath ... không được gửi. Tuy nhiên, những điều sau sẽ gửi thông báo thích hợp:
[[myObj mutableArrayValueForKey:@"theArray"] addObject:NSString.string];
Điều này là do mutableArrayValueForKey
trả về một đối tượng proxy có nhiệm vụ thông báo cho người quan sát.
Nhưng không phải các trình truy cập tổng hợp sẽ tự động trả về một đối tượng proxy như vậy? Cách thích hợp để giải quyết vấn đề này là gì - tôi có nên viết một trình truy cập tùy chỉnh mà chỉ gọi [super mutableArrayValueForKey...]
không?