I am confused about the proper means of allocating memory in Objective-C. Suppose I have an NSMutableDictionary. There are two ways I can initialize it:
[NSMutableDictionary dictionary];
is exactly the same thing as:
[[[NSMutableDictionary alloc] init] autorelease];
It just saves you some typing. It doesn't matter which one you use, as long as you know the difference between a retained object and an autoreleased one. If you're using ARC, then you don't even need to know that.
The convention is: