Home > DeveloperSection > Interviews > What happens when you call autorelease on an object?

Posted on    July-28-2015 11:31 PM

 iPhone iPhone  Ios  Objective C 
 1 Answer(s)
  1189  View(s)
Rate this:

naomi burke
naomi burke

Total Post:6

Posted on    July-28-2015 11:31 PM

When you send a autorelease message to an object, its retain count is decremented by 1 at some stage in the future. The object is added to an autorelease pool on the current thread.

The main thread loop creates an autorelease pool at the beginning of the function, and release it at the end. This establishes a pool for the lifetime of the task. However, this also means that any autoreleased objects created during the lifetime of the task are not disposed of until the task completes. This may lead to the taskʼs memory footprint increasing unnecessarily. You can also consider creating pools with a narrower scope or use NSOperationQueue with itʼs own autorelease pool. (Also important – You only release or autorelease objects you own.)

Modified On Mar-18-2016 11:03:29 PM

Don't want to miss updates? Please click the below button!

Follow MindStick