It seems that there is a standard convention that in Objective-C, if a method is alloc, new, or copy, then: you now have the ownership to the new object, and so you are supposed to release it using [obj release] (suppose this is not ARC).
If, however, the method to get a new instance is by those “convenience methods”, such as in [NSMutableArray arrayWithCapacity:100], since it is not alloc, new, or copy, so the new object, by convention, is in the autorelease pool, and you never worry about releasing it?
Yes, if you didn’t allocate the object, you don’t need to release it. (under your assumptions of course)