每次我编写一个新的 iPhone 应用程序时,我都会从创建目标开始,添加框架,然后在一个全新的 main.m 中编写它:
NSAutoReleasePool *pool = [[NSAutoReleasePool alloc] init];
// etc...
这样的游泳池究竟是什么?它是干什么用的?当它掉进游泳池时,它肯定不会保护设备。但为什么会在那里?我需要吗?它是有用的还是邪恶的?谢谢
每次我编写一个新的 iPhone 应用程序时,我都会从创建目标开始,添加框架,然后在一个全新的 main.m 中编写它:
NSAutoReleasePool *pool = [[NSAutoReleasePool alloc] init];
// etc...
这样的游泳池究竟是什么?它是干什么用的?当它掉进游泳池时,它肯定不会保护设备。但为什么会在那里?我需要吗?它是有用的还是邪恶的?谢谢
NSAutoreleasePool 负责处理无主对象并在池被释放时释放它们。我建议您阅读有关该主题的文档。
举个例子:
autorelease
消息,上面写着:“我不再拥有这个对象了”。池现在负责处理该对象。请注意,即使对象不是自己的,也不会被释放。自动释放池是您可以想到的一个对象,它捕获了所谓的“自动释放”,当池耗尽(发送drain
消息)时,池中的每个对象都会发送一个 -release 方法。