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.)
Liked By
Write Answer
What happens when you call autorelease on an object?
Join MindStick Community
You have need login or register for voting of answers or question.
Anonymous User
28-Jul-2015When 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.)