Mailing Lists: Apple Mailing Lists

Image of Mac OS face in stamp
 
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Foo new] vs [[Foo alloc] init]:




On Feb 15, 2008, at 6:11 PM, Bill Bumgarner wrote:

On Feb 15, 2008, at 1:55 PM, Gregory Weston wrote:
Keith Duncan wrote:
As far as I understand, [Foo new] is exactly equivalent to [[Foo
alloc] init]
Correct.
Incorrect. Based on the documentation new (by default) does setup work analogous to alloc and then invokes init before returning the object. It does not actually use the alloc method, though, which means it's entirely possible for new to not be equivalent to an alloc/init pair.

Possible? Sure. But one would be mighty optimistic to make such a subtle distinction.

Mighty optimistic? I'd think "appropriately pessimistic" would be a better description.


On Leopard, +new is implemented as return [[self alloc] init]; It is equivalent unless a subclass overrides, which is exceedingly unlikely.

Where's the documentation that says that's reliable?

Without that guarantee, there's a different between saying "this statement accurately describes all current implementations" and "this statement is correct." It is not correct in general to say that "[Foo new] is exactly equivalent to [[Foo alloc] init]." Those are the kind of assumptions that burn you after you've forgotten you made them in the first place.
_______________________________________________


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:
http://lists.apple.com/mailman/options/cocoa-dev/email@hidden

This email sent to email@hidden
References: 
 >Re: [Foo new] vs [[Foo alloc] init]: (From: Gregory Weston <email@hidden>)
 >Re: [Foo new] vs [[Foo alloc] init]: (From: Bill Bumgarner <email@hidden>)



Visit the Apple Store online or at retail locations.
1-800-MY-APPLE

Contact Apple | Terms of Use | Privacy Policy

Copyright © 2007 Apple Inc. All rights reserved.