On 14 Jan 2011, at 11:43, Clark Cox wrote:

> On Fri, Jan 14, 2011 at 3:34 AM, jonat...@mugginsoft.com
> <jonat...@mugginsoft.com> wrote:
>> 
>> 
>> On 14 Jan 2011, at 11:25, Tito Ciuro wrote:
>> 
>>> Hi Mike,
>>> 
>>> Given that the caller can pass a NSDictionary or an NSMutableDictionary, I 
>>> wanted to test its mutability before calling setObject:forKey:. In order to 
>>> avoid calling mutableCopy each time, I thought it would be more efficient 
>>> to test it and then call mutableCopy only when needed.
>>> 
>>> Thanks for the help,
>>> 
>>> -- Tito
>>> 
>> 
>> In this case just check if your object responds to setObject:forKey:
>> If it does its mutable, if not it isn't.
> 
> Unfortunately, that will not work. Internally, both NSDictionary and
> NSMutableDictionary are implemented by the same class; even
> NSDictionary responds to -setObject:forKey: (it won't do much other
> than throw an exception if called, but it implements it nonetheless)
> 

You are quite correct. I had forgotten the detail of this. Apologies.

Apple's take on this is to choose a method signature and stick to it.

You can, however, dig the mutability info out if you really want to.
You can use -classForCoder and that will give you either NSDictionary
or NSMutableDictionary.

Regards

Jonathan Mitchell

Developer
Mugginsoft LLP
http://www.mugginsoft.com_______________________________________________

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