On May 11, 2010, at 2:42 PM, Quincey Morris wrote:

> 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 ...

In my experience, doing this will actually raise application-breaking 
exceptions in many cases, unless this has been solved by a recent OS release. I 
suspect that the API does *not* do any checking, or doesn't check in every 
case. Unless, of course, this has been "fixed" since I came across it last, 
which is possible but I would be surprised since it is developer-fault anyway.

Keary Suska
Esoteritech, Inc.
"Demystifying technology for your home or business"

_______________________________________________

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