On Oct 10, 2010, at 10:32 AM, Keary Suska wrote: > On Oct 10, 2010, at 5:54 AM, Trygve Inda wrote: > >> I have a nib with an NSArrayController bound to this object with a keypath >> of mydi...@allvalues >> >> This works, but when I want to add an item to the dict (and have it >> reflected in the arraycontroller), the method in my object is: >> >> [self willChangeValueForKey:@"myDict"]; >> >> NSDictionary* test = >> [NSDictionary dictionaryWithObjectsAndKeys:@"someValue", @"someKey", nil]; >> >> [myDict setValue:test forKey:@"someOtherKey"]; >> >> [self didChangeValueForKey:@"myDict"]; >> >> >> This works too, but how can I do this without the willChange/didChange ? >> >> Shoudln't the setValue call, fire a KVO message? > > NSDictionary does not emit any notices when the collection itself is mutated, > or when keys change. Have you tried using an NSDictionaryController instead?
This is not true. I have made that mistake myself, but NSMutableDictionary is KVO compliant for its keys (qua properties). The open questions are a) whether it emits a change notification for allValues, and b) what the heck "mydi...@allvalues" is supposed to mean. I'm not aware of that being a valid KVC collection operator. A quick test program on Snow Leopard: a) confirms that NSMutableDictionary sends out change notifications for its keys, but b) does not send out change notifications for the allValues property. Regards, Ken
Untitled.m
Description: Binary data
_______________________________________________ Cocoa-dev mailing list ([email protected]) 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 [email protected]
