• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: Autorelease Question
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Autorelease Question


  • Subject: Re: Autorelease Question
  • From: Luke the Hiesterman <email@hidden>
  • Date: Thu, 20 Nov 2008 18:03:47 -0800

If you think about it, it becomes clear why convenience methods return autoreleased objects. As a heuristic, whoever retains an object should release it. Since you're having the class method perform an implicit retain (by calling alloc) then it needs to do a release. It obviously cannot release the object before returning it to you, so its only choice is to autorelease. When you call alloc yourself, then you are the one responsible for releasing at a later time.

Luke


On Nov 20, 2008, at 5:57 PM, Dave DeLong wrote:


On 20 Nov, 2008, at 6:54 PM, Klaus Backert wrote:

"Class factory methods are implemented by a class as a convenience for clients. They combine allocation and initialization in one step and return the created object autoreleased. These methods are of the form + (type)className... (where className excludes any prefix)."


"autoreleased" !

Because of this the following statements are identical, as far as I can see:

NSString *blah = [[[NSString alloc] init] autorelease];
NSString *blah = [NSString string];

Aren't they?

Yes. They are identical.

Dave
_______________________________________________

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

_______________________________________________

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


References: 
 >Autorelease Question (From: "Carmen Cerino Jr." <email@hidden>)
 >Re: Autorelease Question (From: Joseph Crawford <email@hidden>)
 >Re: Autorelease Question (From: Alexander Spohr <email@hidden>)
 >Re: Autorelease Question (From: Adam Leonard <email@hidden>)
 >Re: Autorelease Question (From: Klaus Backert <email@hidden>)
 >Re: Autorelease Question (From: Dave DeLong <email@hidden>)

  • Prev by Date: Re: Difference between "Target" and "Executable" ?
  • Next by Date: Re: How do you get the OS X version number in C or C++?
  • Previous by thread: Re: Autorelease Question
  • Next by thread: Re: Autorelease Question
  • Index(es):
    • Date
    • Thread