Обычно вам не нужно создавать пул автоматического выпуска, потому что система заботится об этом. Но иногда вам нужно сделать это. Обычно это большие петли. Код будет выглядеть так:
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];
Пулы автоматического выпуска сохраняются в виде стека: если вы создаете новый пул автоматического выпуска, он добавляется в верхнюю часть стека, и каждое сообщение автоматического выпуска помещает получателя в самый верхний пул.