On Sep 20, 2009, at 1:54 PM, Steve Cronin wrote:

Kyle;

Thanks for such a speedy response.  (and on a Sunday afternoon too!)

That code is a fairly complex set of interlocking methods.
Why would the construction of this NSMutableDictionary have anything to do with this error?

Because the error quite clearly indicates you're trying to mutate an immutable object, so myBaseSettings seems to be not an NSMutableDictionary like you believe it to be, but just an NSDictionary.

I believe the reason using a multipart keypath works is that it conceptually ends up doing something like this:

[myBaseSettings setValue:@"whatever" forKeyPath:@"foo.bar"]   =>

id tmp = [myBaseSettings valueForKey:@"foo"];
[tmp setValue:@"whatever" forKey:@"bar"];

You aren't mutating myBaseSettings in this case, but mutating whatever is stored in "foo" in myBaseSettings. Whatever *that* is is likely a mutable object, but your myBaseSettings is not.

So somewhere in your "complex set of interlocking methods" it seems you're ending up with an immutable myBaseSettings instead of a mutable one.


Jason


Attachment: smime.p7s
Description: S/MIME cryptographic signature

_______________________________________________

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