我怀疑自动释放物体的时间。我发现这个question,
在线程接受的答案中,为runloop执行提供了以下说明:
void int UIApplicationMain (int argc, char *argv[], NSString *principalClassName, NSString *delegateClassName) {
UIApplication *app = /* create app using principalClassName */;
[app setDelegate:/* create delegate using delegateClassName */];
while (![app shouldTerminate]) {
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
event = [app getNextEvent];
[app dispatchEvent:event];
[pool drain];
}
}
这是runloop执行的原因吗?
这意味着每次执行runloop时,都会创建并发布一个新的自动释放池。
答案 0 :(得分:3)
是。你在每个循环中创建一个新池并销毁它。
This解释了引用计数环境中的drain
如何等同于release
,因此会被销毁。接下来循环,您alloc
,init
另一个。