On 14-Jan-2011, at 7:36 PM, Roland King wrote:

> 
> On 14-Jan-2011, at 7:25 PM, 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
>> 
> 
> remember - write it first, optimize it later. If your app is slow and you run 
> the performance tools on it and making mutable copies is what's causing you 
> performance issues then by all means optimize it at that point. My suspicion 
> would be that making mutable copies of existing dictionaries is a pretty fast 
> operation, apple's pretty good at that stuff. 
> 
> One other idea, if your method wants a dictionary it can mutate, how about 
> making that the signature and making it up to the caller to send something 
> mutable, as it seems not entirely unlikely the caller knows what it has. 
> 

Hit send too fast .. 

Also, if your caller can pass NSDictionary or NSMutableDictionary to your 
method that seems to indicate the method signature is .. NSDictionary. If I as 
a caller send something to a method which takes an NSDictionary, I would expect 
you not to mutate it, even if I happen to have sent you a mutable one. So 
either change the signature to be NSMutableDictionary, and if callers don't 
want you mutating the argument they can copy it before they send it you, or 
make a mutable copy of the argument for yourself every time and respect the 
method calling 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