Name
NSAutoreleasePool — Mac OS X 10.0
Synopsis
This class is used by Cocoa’s
memory
management system to store objects that have been sent
autorelease
messages until the end of the current
event-loop. At the end of the each pass through the event-loop the
autorelease pool is deallocated, thereby releasing any objects
referenced by the pool. At the beginning of each pass through the
run-loop, a new instance of NSAutoreleasePool
is
created.
For Cocoa’s memory management system to function
properly there must be an autorelease pool present. If there is no
autorelease pool present then your code will begin to leak memory, as
objects will not be released. In this same vein, when you detach a
new thread, that thread is responsible for creating its own
autorelease pool. Autorelease pools are created just like any other
object, using alloc
and init
.
Multiple autorelease pools in a single thread of execution are
maintained in a stack whereby objects being autoreleased are sent to
the pool at the top of the stack.
The operational method of NSAutoreleasePool
is
addObject
:, which adds the specified object to the
pool, causing the object to be released when the pool is itself
released. If an object is added multiple times, it will be sent a
release
message for each time it was added to the
pool. You should never have to invoke addObject
:
yourself; that’s the purpose of
NSObject
’s
autorelease
method.
|
@interface NSAutoreleasePool : NSObject
|
// Class Methods
|
+ (void)addObject:(id)anObject ... |
Get Cocoa in a Nutshell now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.