Re: [Foo new] vs [[Foo alloc] init]:
Re: [Foo new] vs [[Foo alloc] init]:
- Subject: Re: [Foo new] vs [[Foo alloc] init]:
- From: Bill Bumgarner <email@hidden>
- Date: Sat, 16 Feb 2008 09:11:27 -0800
On Feb 16, 2008, at 4:56 AM, Gregory Weston wrote:
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.
In general, I agree. In this particular case, I'm not concerned. If
Apple were to change the implementation of +new to *not* do +alloc
followed by -init, many many bits of code would break. Binary
compatibility between release of Mac OS X is critical and, thus, this
particular behavior cannot change.
Reading the docs, it explicitly states:
...
This method is a combination of alloc and init. Like alloc, it
initializes the isa instance variable of the new object so it points
to the class data structure. It then invokes the init method to
complete the initialization process.
...
From there, the documentation entirely discusses implementing +new...
as a cover for various -initWith... style initializers.
Thus, the bare behavior of +new is quite thoroughly well defined as a
combination of +alloc and -init (in the docs, the the two method names
are links to the documentation of said methods).
b.bum
_______________________________________________
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