On Jul 18, 2008, at 4:19 PM, mmalc crawford wrote:
On Jul 18, 2008, at 11:51 AM, Andy Lee wrote:

"Autoreleased" is inaccurate and is not a proper shorthand for "you must retain it if you want it to stick around". To understand why, consider two possible implementations of a get accessor:

- (NSString *)name {
 return name;
}
- (NSString *)name {
 return [[name retain] autorelease];
}
I don't see the difference from the caller's point of view.

NSString *name = [aPerson name];
[aPerson setName:@"Fido"];
NSLog(@"Old name: %@", name);

And calling the return value from -name "autoreleased" would imply the second implementation, which might not be the case.

Out of curiosity, is this what the docs mean in the few places they say a return value is autoreleased, or is that just someone making the same old mistake? It's trivial to find these instances by searching for "autoreleased" in Xcode.

Moreover, saying that an object is "autoreleased" also implies the overhead of adding it to an autorelease pool, suggesting that it may be more expensive to retrieve the object than is actually the case.

Okay... I thought I had a reasonable suggestion but I see it was a pretty crappy one. I'll see if I can get comfortable with the ownership terminology.

--Andy




I don't think I have ever said method X returns an autoreleased object. I was suggesting either the term could be accepted in the way that other people (and some Apple docs) use it, or someone could come up with a better term.

There is already another term -- owns. As stated initially, "autorelease" is inaccurate and misleading.

There is a reason people keep using the term incorrectly

That's exactly what you're doing here.

mmalc
_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

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/archive%40mail-archive.com

This email sent to [EMAIL PROTECTED]

Reply via email to