RunLoop

2017-05-07  本文已影响0人  hehc08

一、RunLoopObserver 与 Autorelease Pool

UIKit通过RunLoopObserver在RunLoop两次Sleep间对AutoreleasePool进行pop和push,将这次Loop中产生的Autorelease对象释放。(好像swift中没有关于释放的问题)

二、CFRunLoopMode

RunLoop在同一时段只能且必须在一种特定Mode下Run

更换Mode时, 需要暂停当前的Loop,然后重启新的Loop

NSDefalutRunLoopMode      默认状态.空闲状态

UITrackingRunLoopMode     滑动ScrollView

UIInitializationRunLoopMode    私有,App启动时

NSRunLoopCommonModes     默认包括上面第一和第二

三、参考资料

CF框架源码(这是一份很重要的源码,可以看到CF框架的每一次迭代,我们可以下载最新的版本来分析,或与以下文章对比学习。目前最新的是CF-1153.18.tar.gz)

RunLoop官方文档(学习iOS的任何技术,官方文档都是入门或深入的极好手册;我们也可以在Xcode—>Help—>Docementation and API Reference —>搜索RunLoop—> Guides(59)—>《Threading Programming Guide:Run Loops》这篇即是)

深入理解RunLoop(不要看到右边滚动条很长,其实文章占篇幅2/5左右,下面有很多的评论,可见这篇文章的火热)

RunLoop个人小结(这是一篇总结的很通俗容易理解的文章)

sunnyxx线下分享RunLoop(这是一份关于线下分享与讨论RunLoop的视频,备用地址:https://pan.baidu.com/s/1pLm4Vf9

iPhonedevwiki中的CFRunLoop(commonModes中其实包含了三种Mode,我们通常知道两种,还有一种是啥,你知道么?)

维基百科中的Event loop(可以看看这篇文章了解一下事件循环)

上一篇下一篇

猜你喜欢

热点阅读