1

我怀疑何时自动释放对象。当我发现这个问题时,

在线程接受的答案中,为运行循环执行提供了以下解释:

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 时,都会创建并释放一个新的自动释放池。

4

1 回答 1

3

是的。您在那里的每个循环都在创建一个新池并销毁它。

解释了drain在引用计数环境中,如何等价于release,因此它被销毁。下一个循环,你allocinit另一个。

于 2012-10-29T13:56:33.710 回答