我有一个关于自动释放的问题,现在我有以下代码:
int main(int argc, char *argv[]){
@autoreleasepool {
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
}}
文档在 @autoreleasepool{} 的末尾说,标记为 autorelease 的对象将收到一条释放消息。但是 UIApplicationMain 永远不会返回,这意味着流程永远不会到达 @autoreleasepool 的末尾,那么标记为 autorelease 的对象将永远不会被释放,直到应用程序死亡。没有自动释放的意义......
我问过有人说iOS系统会生成一些线程,(你知道,一个线程,一个runloop)。他说runloop会创建自动释放池。所以自动释放对象将在thead或runloop结束时释放. 但是大多数情况我们使用主线程。所以他说的并不能说服我。
什么是使用自动释放的合适时间。它让我很困惑。
我得到另一点,当一个运行循环结束时自动释放对象将被释放(主运行循环将在应用程序的整个生命周期中存在??)所以我不确定..
任何观点和相关文件将不胜感激!