RunLoop
2018-08-17 本文已影响0人
59c4116645d0

什么是RunLoop?
RunLoop是通过内部维护的事件循环来对事件/消息进行管理的对象。

NSRunLoop是CFRunLoop的封装,提供了面向对象的API。
CFRunLoop数据结构:


CFRunLoopSource:
source0 :需要手动唤醒线程
source1 :具备唤醒线程的能力
CFRunLoopTimer:
CFRunLoopObserver:
检测时间点:1 kCFRunLoopEntry
2 kCFRunLoopBeforeTimers
3 kCFRunLoopBeforeSources
4 kCFRunLoopBeforeWaiting
5 kCFRunLoopAfterWaiting
6 kCFRunLoopExit

怎样把timer添加到多个model中去?
NSRunLoopCommonModes
·CommonMode不是实际存在的一种Model
·是同步Source/Timer/Observer到多个Mode中的一个技术方案。
RunLoop事件循环机制



