Re: change in model not reflected in interface
Re: change in model not reflected in interface
- Subject: Re: change in model not reflected in interface
- From: mmalcolm crawford <email@hidden>
- Date: Sat, 30 Jul 2005 11:33:05 -0700
On Jul 30, 2005, at 11:17 AM, Edward Hillenbrand wrote:
- (void)didChangeValueForKey:(NSString *)key {
if ( [key isEqualToString:@"foo"] ) {
[self setBar:[self foo] * 2]; // this change is not
reflected in the interface???
NSLog(@"%f", [self bar]);
}
}
@end
AFAIK, the object above is KVO complaint. I have an interface with
two text fields, one bound to foo and the other bound to bar. When
I change the value in the text field bound to foo the value in the
text field bound to bar doesn't change.
The accessor methods are KVO compliant, but you disrupt the mechanism
by overriding didChangeValueForKey: (specifically, you don't invoke
the superclass's implementation -- although you shouldn't be doing
this anyway: is there anywhere in the documentation that suggests
that overriding the KVO notification methods is a common pattern?).
It's not clear why you would do this rather than simply:
- (void)setFoo:(float)value {
foo = value;
[self setBar:value * 2];
}
mmalc
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Cocoa-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden