iPe*_*era 11
通常,您不需要创建自动释放池,因为系统关心这一点.但是,有时你需要这样做.它通常在大循环中.代码看起来像这样:
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];
Run Code Online (Sandbox Code Playgroud)
自动释放池保存为堆栈:如果您创建一个新的自动释放池,它将被添加到堆栈的顶部,并且每个自动释放消息都会将接收器放入最顶层的池中.