Tôi đang cố gắng quan sát các thay đổi trong từ điển bằng KVO.NSMutableDictionary KVO
Ví dụ:
dictionary = [NSMutableDictionary new];
[dictionary setObject:@"test1" forKey:@"key1"];
[dictionary setObject:@"test2" forKey:@"key2"];
[dictionary setObject:@"test3" forKey:@"key1"];
Tôi rất muốn có thể treo một quan sát viên cho bất cứ khi nào một giá trị được bổ sung vào từ điển. gỡ bỏ, hoặc thay thế (ví dụ trong trường hợp trên, bất cứ khi nào bất kỳ phương pháp setObject được gọi là)
Vì vậy, trong kết luận: Tôi muốn có một chức năng để có
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
gọi khi tôi thêm một bất kỳ mục mới vào từ điển, hoặc Xóa bất kỳ mục nhập nào, hoặc THAY THẾ bất kỳ mục nhập nào.
KHÔNG: Tôi KHÔNG muốn chỉ định khóa nào tôi đang quan sát. (ví dụ: chỉ quan sát khi @ "key1" được thêm vào) vì giải pháp này không mở rộng.
Điều gì sẽ xảy ra nếu bạn quan sát khóa '@" @ count "'trên từ điển? –
No. Không hoạt động. Nếu tôi thay thế @ "@ count" bằng @ "key2" thì nó hoạt động nhưng đó không phải là giải pháp chung. –