iOS开发

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事件循环机制

可以通过 CFRunLoopAddTimer(runLoop,timer,commonMode)来使定时器生效 怎样实现一个常驻线程?
上一篇 下一篇

猜你喜欢

热点阅读