Apple says that this is a good idea for saving memory. What would that look like in code?
                +3 
                A: 
                
                
              Usualy you don't need to create autorelease pool, because system cares about this. But, sometimes you need to do this. It's usualy in big loops. Code would look like this:
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
int i;    
for (i = 0; i < 1000000; i++) {    
  id object = [someArray objectAtIndex:i];
  // do something with object
  if (i % 1000 == 0) {
    [pool release];
    pool = [[NSAutoreleasePool alloc] init];
  }
}
[pool release];
Autorelease pools are kept as a stack: if you make a new autorelease pool, it gets added to the top of the stack, and every autorelease message puts the receiver into the topmost pool.
                  mperovic
                   2009-04-12 21:41:15
                
              Good description. Calling objectAtIndex: however does not add anything to the autorelease pool, so it's OK to use it in a loop without the autorelease pool.
                  Chris Lundie
                   2009-04-12 22:07:41
                Keep in mind that Apple recommends using [pool drain] instead of [pool release] as a habit for future compatibility with GC environments.
                  Marc Charbonneau
                   2009-04-13 01:15:22