美文网首页
《iOS Run Loop 线下分享》的简单总结

《iOS Run Loop 线下分享》的简单总结

作者: PetitBread | 来源:发表于2016-12-20 11:56 被阅读124次

不做长篇大论,不贴代码,只做简单总结,不对的地方感谢指正


Run Loop是什么?为什么存在?
一个run loop就是一个事件处理循环,用来不停的监听和处理输入事件并将其分配到对应的目标上进行处理。
我们需要一个机制,让线程能随时处理事件但并不退出。 在主线程会一直存在一个Runloop,在用户点击应用屏幕是会唤醒,在应用空闲时会进入sleep状态,简单来说,就是通过Run Loop来实现一个圆形线程,
CFRunLoopObserverRef,这个是用来观测RunLoop的状态变化

AutoreleasePool什么时候释放?
面试经常被问到这个问题,这个问的就是Run Loop这个点
每个runloop中都创建一个Autorelease Pool,在一个runloop进入BeforeWaiting(休眠)的时候AutoreleasePool就会释放

Run Loop的应用?
有一次面试被问到AFNetWorking 中的URLConnection 与Run Loop有什么关系? .........啊?
网络请求需要Run Loop去驱动,URLConnection中单独开启了一个名为“AFNetWorking”的线程,在runloop run 之前会添加一个 NSMachPort端口,为了保证RunLoop 不退出。这样就有了一个网络请求线程去服务整个应用,不会占用主线程资源

TableView的延迟加载优化
在cell里面的图片设置放置在defaultRunLoopMode里面,在滑动的时候图片就不会加载。

scrollerview滑动的时候不影响Timer?
默认scheduledTimer创建Timer的时是在NSRunLoopDefaultMode 里,若不希望timer被ScrollerView影响,需要添加到NSRunLoopCommonModes

相关文章

  • 《iOS Run Loop 线下分享》的简单总结

    不做长篇大论,不贴代码,只做简单总结,不对的地方感谢指正 Run Loop是什么?为什么存在?一个run loop...

  • 详解Run Loop

    Run Loop Run Loop是事件驱动的。 iOS中有2套API来访问使用Run LoopFoundatio...

  • 如何手动唤醒RunLoop

    在iOS 中,除了source1可以自己唤醒run loop之外,其他的事件都需要用户手动唤醒run loop才可...

  • 备战2020——iOS面试题汇总!(栏目将持续更新)

    runloop 推荐相关文章 iOS 对于Run Loop的理解? 2019 iOS面试题-----RunLoop...

  • runloop

    走进Run Loop的世界 (一):什么是Run Loop?走进Run Loop的世界 (二):如何配置Run L...

  • runloop阻塞线程的正确写法 & 子线程常驻后台

    转载自: iOS RunLoop 初识深入理解RunLoopiOS多线程编程指南(三)Run Loop 1.Run...

  • iOS Runloop学习笔记

    一、** what is run loop ** 1、A run loop is an abstraction t...

  • Run Loop简单理解

    Run Loop引入 首先由一个问题引入,每一个iOS应用,它的入口是哪里?毫无疑问,iOS应用是源于C语言,所以...

  • iOS run loop 详解

    一个应用开始运行以后放在那里,如果不对它进行任何操作,这个应用就像静止了一样,不会自发的有任何动作发生,但是如果我...

  • iOS之Run Loop

    Run Loop是用于管理在线程上异步执行事件的基础方式。Run Loop用来监听线程的一个或多个事件源。当事件发...

网友评论

      本文标题:《iOS Run Loop 线下分享》的简单总结

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