Có thể thêm người quan sát để được thông báo nếu có thuộc tính đối tượng được giám sát nào được sửa đổi không? Ví dụ:KVO cho toàn bộ thuộc tính đối tượng
@interface OtherObject : NSObject
@property (nonatomic) MyObject* myObject;
@end
và
@interface MyObject : NSObject
@property (nonatomic) unsigned int property1;
@property (nonatomic) unsigned int property2;
@end
Tôi muốn làm điều gì đó như:
[otherObject addObserver:self
forKeyPath:@"myObject"
options:0
context:nil]
và nhận được thông báo nếu một trong hai property1 hoặc property2 được sửa đổi. Nó dường như không hoạt động nếu tôi đăng ký đối tượng đang nắm giữ (bằng cách nào đó có ý nghĩa vì myObject không thực sự được sửa đổi khi tôi sửa đổi property1 chẳng hạn).
Có lẽ, bạn cũng có thể kết hợp hai phương pháp này, sử dụng thời gian chạy Objective-C để nhận danh sách tất cả các thuộc tính trong keyPathsForValuesAffectingMasterProperty, sau đó trả về chúng trong một NSSet. (Có thể nên sử dụng biến tĩnh để bạn chỉ phải thực hiện một lần.) – dgatwood