Re: Handling bindings of an NSControl which forward everything to an NSCell?
Re: Handling bindings of an NSControl which forward everything to an NSCell?
- Subject: Re: Handling bindings of an NSControl which forward everything to an NSCell?
- From: Keary Suska <email@hidden>
- Date: Tue, 11 May 2010 16:26:05 -0600
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 (email@hidden)
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:
This email sent to email@hidden