On May 12, 2010, at 11:04, Ken Thomases wrote:

> On May 12, 2010, at 11:44 AM, Quincey Morris wrote:
> 
>> *All* collections emit KVO notifications when their contents change, in the 
>> sense of objects entering or leaving the collection. Add, remove and replace 
>> for arrays, add and remove for sets, set and remove for dictionaries.
> 
> Arrays and sets may (probably; I haven't checked) emit change notifications 
> for their "count" and "description" properties when elements are added or 
> removed.  But they don't emit change notifications regarding the specific 
> elements that they contain, which is what I think Keary was getting at.  In 
> particular, they don't emit a change notification of kind 
> NSKeyValueChangeInsertion, NSKeyValueChangeRemoval, or 
> NSKeyValueChangeReplacement.

Well, technically, they don't *emit* these notifications -- they are emitted by 
KVO-compliant custom accessors and/or KVO-compliant mutable array/set proxies.

I have no idea whether NSMutableDictionary does literally emit 
(will/DidChange...) notifications for setObject:forKey:/removeObjectForKey:, or 
whether those methods are invisibly wrapped in KVO-compliant methods, just like 
ordinary object properties when they're observed.

Either way, I'm not sure it matters a lot where the notifications come from. My 
point was that KVO notifications of kind NSKeyValueChangeInsertion, 
NSKeyValueChangeRemoval, or NSKeyValueChangeReplacement do happen when arrays 
and sets are updated KVO-compliantly, just like KVO notifications of kind 
NSKeyValueChangeSetting happen when ordinary object properties are updated 
KVO-compliantly.


_______________________________________________

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