Re: Cocoa Dev Style: Using Class versus Object Methods
Re: Cocoa Dev Style: Using Class versus Object Methods
- Subject: Re: Cocoa Dev Style: Using Class versus Object Methods
- From: Christopher Nebel <email@hidden>
- Date: Mon, 11 Aug 2008 11:35:52 -0700
On Aug 8, 2008, at 8:33 AM, Uli Kusterer wrote:
On 08.08.2008, at 07:28, Nick Zitzmann wrote:
On Aug 7, 2008, at 11:08 AM, Lee, Frederick wrote:
1) why use instantiated objects versus classes (via class
methods)?
Because class methods other than +new return autoreleased objects,
which makes non-GC memory management a little bit easier.
This is simply wrong. Ignore that. A counterexample would be +alloc.
Better read Apple's memory management rules if you want to know the
correct story.
As a blanket rule, sure. However, classes will often define class
methods that act as conveniences for the longer instance
initializers. Consider NSArray:
+ (id) arrayWithArray:(NSArray *) array
- (id) initWithArray:(NSArray *) array
Both of these follow the normal memory management rules, so
+arrayWithArray: returns an autoreleased object, while -initWithArray:
doesn't, so these two expressions are equivalent:
[NSArray arrayWithArray:x]
[[[NSArray alloc] initWithArray:x] autorelease]
Presumably this is what Mr. Zitzmann was referring to.
--Chris N.
_______________________________________________
Cocoa-dev mailing list (email@hidden)
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:
This email sent to email@hidden