首页 > 代码库 > AutoReleasePool总结

AutoReleasePool总结

1.知识点

int main(int argc, char * argv[]) {    @autoreleasepool {        return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));    }}

1.在每一个事件周期(event cycle)的开始,系统会自动创建一个自动释放池;在每一个事件周期的结尾,系统会自动销毁这个自动释放池。一般情况下可以理解为:当此APP的代码在持续运行时,自动释放池是不会被销毁的,这段时间内可以安全地使用自动释放的对象;当APP的代码运行告一段落,开始等待用户输入(或者其它事件)时,自动释放池就会被释放掉,池中的对象都会收到一个release消息,有的可能会因此被销毁。

2.当在主线程外开启其它线程时,系统只会在主线程中自动生成并销毁掉自动释放池。

 

2.例子

1.

 

AutoReleasePool总结