I've looked through the docs and googled, but I can't find an answer to this question, so if it's obvious, forgive me.
Can one set up KVO on a property of a property if the intermediate one is nil, and then get notified when either changes? In practice, it seems not, as I don't get notified for either the intermediate property or the leaf property. In that case, it seems that I have to observer the intermediate properties individually, and then when those change, ignore and observe their sub properties. Let's say I have three classes, A, B, and C. A has a b* b property, and B and C have properties foo and bar, respectively: @interface B : NSObject @property (strong) NString* bar; @end --- @interface A : NSObject @property (strong) B* foo; @end --- Can I do: @implementation SomeClass - (void) observeValueForKeyPath: (NSString*) inKeyPath ofObject: (id) inObject change: (NSDictionary*) inChange context: (void*) inContext { if ([inKeyPath isEqualToString: @"foo.bar"]) { // Yay! // Notified when a.foo changes // Notified when a.foo.bar changes } else { [super observeValueForKeyPath: inKeyPath ofObject: inObject change: inChange context: inContext]; } } - (void) test { A* a = [[A alloc] init]; [a addObserver: self forKeyPath: @"foo.bar" options: NSKeyValueObservingOptionInitial | NSKeyValueObservingOptionNew context: NULL]; ... And be notified in these two instances: ... B* b = [[B alloc] init]; a.foo = b; // Notified because foo changed from nil to something b.bar = @"something"; // Notified because bar changed } -- Rick _______________________________________________ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com