On Jan 19, 2010, at 5:50 pm, Jeff Laing wrote:

>> Yes, and it autoreleases it too. :-o That means it'll conveniently be
>> released later on, which is exactly what you're running into. If you
>> want to keep a reference to the dictionary, you should call alloc and
>> init yourself.
> 
> No, you should just *retain* the result of dictionaryWithCapacity.
> 
No, you shouldn't.

If you're writing an init method and want to assign the dictionary to an 
instance variable, you should use alloc/init.

If you want to assign the dictionary to an instance variable, you should use an 
accessor method. In this case, it's still better to use alloc/init then release 
the dictionary when you've finished with it.

If you want to create the dictionary, use it temporarily, then forget about it, 
then dictionaryWithCapacity is OK, but again (particularly on iPhone) best 
practice is still to use alloc/init+release.

mmalc

_______________________________________________

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