1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
| CFRunLoopObserverRef 是 Core Foundation 框架中表示 Runloop 观察者的数据类型, 用于监视 Runloop 的状态变化。 CFRunLoopObserverRef 可以监视 Runloop 的多种状态,其中包括以下几种主要状态:
1-Entry(进入):
当 Runloop 即将进入运行循环时,会触发 Entry 状态的回调函数。 此时 Runloop 尚未开始处理事件,处于准备状态。
2-BeforeTimers(定时器触发前):
在 Runloop 处理定时器事件之前,会触发 BeforeTimers 状态的回调函数。 此时 Runloop 即将开始处理定时器事件。
3-BeforeSources(源事件触发前):
在 Runloop 处理源事件之前,会触发 BeforeSources 状态的回调函数。 此时 Runloop 即将开始处理源事件。
4-BeforeWaiting(即将进入休眠):
当 Runloop 即将进入休眠状态时,会触发 BeforeWaiting 状态的回调函数。 此时 Runloop 即将进入休眠,等待事件的到来。
5-AfterWaiting(唤醒后):
在 Runloop 从休眠状态唤醒后,会触发 AfterWaiting 状态的回调函数。 此时 Runloop 已经从休眠状态中恢复,并开始处理事件。
6-Exit(退出):
当 Runloop 即将退出运行循环时,会触发 Exit 状态的回调函数。 此时 Runloop 即将结束运行循环,准备退出。
通过监听这些状态,开发者可以在不同阶段插入自定义的处理逻辑,从而实现更加精细的 Runloop 监控和管理
|