Skip to Content
Cocoa in a Nutshell
book

Cocoa in a Nutshell

by Michael Beam, James Duncan Davidson
May 2003
Intermediate to advanced
566 pages
27h 29m
English
O'Reilly Media, Inc.
Content preview from Cocoa in a Nutshell

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 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

Pro Objective-C

Pro Objective-C

Keith Lee
More iPhone Development with Objective-C

More iPhone Development with Objective-C

David Mark, Jayant Varma, Jeff LaMarche, Alex Horovitz, Kevin Kim

Publisher Resources

ISBN: 0596004621Errata Page