iOS 运行循环-RunLoop 和 自动释放池-autoreleasepoo 笔记

//联系人:石虎QQ: 1224614774昵称:嗡嘛呢叭咪哄

一、"运行循环-RunLoop"的作用

最主要的作用:保证程序不退出->主线程始终存在!

除此之外运行循环还负责监听所有的事件,包括:手势触摸,时钟触发,网络加载数据完成

特性:没有事件的时候,会休眠(省电),一旦监听到事件,会立即响应

特点:开发几乎不用,但是概念很重要

每一个线程都有一个runloop,但是只有主线程的runloop会启动

二、"自动释放池-autoreleasepool"的作用

-延迟释放:哪些对象是会延迟释放的?

-所有延迟释放的对象,在出了作用域之后,会被添加到“最新创建的”自动释放池中,但是不会被立即销毁!

-"自动释放池被销毁"时会向池中所有对象发送release消息,可以释放所有的延迟释放的对象!

问题:自动释放池什么时候被销毁?

问题:自动释放池在ARC中工作吗?

答案:必须要工作!编译器在编译的时候,会根据代码自动添加retain,release,autorelease

经过多年的测试,ARC的性能比MRC要好!

谢谢!!!

你可能感兴趣的:(iOS 运行循环-RunLoop 和 自动释放池-autoreleasepoo 笔记)