On May 11, 2010, at 12:45, Joanna Carter wrote:

> Only if you implement the KVO pattern in the setters:
> 
> - (void) setCornerSize:(NSSize) _size
> {
> [self willChangeValueForKey:@"CornerSize"];
> [[self cell] setCornerSize:_size];
> [self didChangeValueForKey:@"CornerSize"];
> }

Um, not so much. :)

In the normal case, setters *should not* call will/didChangeValueForKey, since 
the entire setter is (invisibly) enclosed in a pair of such calls. It's 
harmless (AFAIK), because KVO explicitly suppresses the recursion implied by 
calling them within the setter, but it's absolutely unnecessary. Unless ...

If the property is explicitly marked to not generate KVO notifications 
automatically, you will of course need to call will/didChangeValueForKey 
manually. See here:

        
http://developer.apple.com/mac/library/documentation/Cocoa/Conceptual/KeyValueObserving/Concepts/AutoVsManual.html

The *only* case of this you'll run into normally is Core Data: all of its 
properties are not subject to automatic KVO notification triggering. (Whether 
it's via 'automaticallyNotifiesObserversForKey:' or via some private mechanism 
is not documented.)


_______________________________________________

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:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to