美文网首页iOS 专栏iOS开发牛叉的demo
iOS 运行循环-RunLoop 和 自动释放池-autorel

iOS 运行循环-RunLoop 和 自动释放池-autorel

作者: 石虎132 | 来源:发表于2017-06-28 23:22 被阅读67次

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

谢谢!!!

相关文章

  • iOS 运行循环-RunLoop 和 自动释放池-autorel

    //联系人:石虎QQ: 1224614774昵称:嗡嘛呢叭咪哄 一、"运行循环-RunLoop"的作用 最主要的作...

  • autorelease 自动释放池的释放时机

    autorelease 自动释放池的释放时机 runloop就是iOS中的消息循环机制,当一个runloop结束时...

  • KVC键值编码

    运行循环(runLoop) —自动释放池丶滚动视图丶(NSTimer) >全称是Key-Value coding即...

  • RunLoop笔记

    RunLoop是iOS和OSX中基本的概念,掌握RunLoop,能了解到苹果是如何利用RunLoop实现自动释放池...

  • 什么时间会创建自动释放池?

    A:运行循环检测到事件并启动后,就会创建自动释放池。 B:子线程的 runloop 默认是不工作,无法主动创建,必...

  • iOS精选面试题③

    1、自动释放池是什么,如何工作 自动释放池是NSAutorelease类的一个实例,当向一个对象发送autorel...

  • 自动释放池

    MRC想要将对象放进autoreleasepool中,必须显示调用autorelease 自动释放池Autorel...

  • 2020-03-18 给运行循环添加状态监听

    为什么要监听运行循环呢?因为我们需要看到运行循环进入到什么状态,这和自动释放池释放临时资源的时机有关系。比如 运行...

  • 局部释放池和RunLoop释放池

    局部释放池和RunLoop释放池的概念: 主线程的RunLoop是默认开启的. 每一次消息循环开始的时候会先创建自...

  • 内存管理(四)

    自动释放池和Runloop关系 打印如下:() 分析:重点在Runloop开头和结尾有两个 callout 明为_...

网友评论

  • 65c4f0938ea0:面试的时候有这道题,太感谢这篇文章了,谢谢

本文标题:iOS 运行循环-RunLoop 和 自动释放池-autorel

本文链接:https://www.haomeiwen.com/subject/ftmpcxtx.html