cocoa - Is there a nice way to set up KVO on retained properties? -
quite encounter scenario when want observe changes on retained property:
@interface anobserver {…} @property(retain) foo *foo;   now when want set observing, need write own setter, repeating boilerplate setter code:
- (void) setfoo: (foo*) newfoo {     if (newfoo == foo)         return;     [foo removeobserver:self forkeypath:…];     [foo release], foo = [newfoo retain];     [foo addobserver:self forkeypath:…]; }   this dumb, because pollutes source boilerplate code , it’s easy miss something. there better way set kvo on retained properties? wish write moose’s after hook change kvo after property changed. 
in fact realized watch property itself:
[self addobserver:self forkeypath:@"foo"…];   and change kvo when property changes :-), realize more complicated hand-written setter i’d avoid.
ideas?
how using key path? want observe changes on both value1 , value2 properties of foo. use:
[self addobserver:self forkeypath:@"foo.value1"]; [self addobserver:self forkeypath:@"foo.value2"];   then when properties change, you'll notifications.
Comments
Post a Comment