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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

谢谢!!!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容