CFRunloopObserverRef是觀察者,能夠監(jiān)聽runloop狀態(tài)的改變。
監(jiān)聽的步驟:1.創(chuàng)建監(jiān)聽者 ?2.添加監(jiān)聽者。
runloop的狀態(tài)可以分為以下幾種:
typedef CF_OPTIONS(CFOptionFlags, CFRunLoopActivity) {
kCFRunLoopEntry = (1UL << 0),即將進入runloop
kCFRunLoopBeforeTimers = (1UL << 1),即將處理timer事件
kCFRunLoopBeforeSources = (1UL << 2),即將處理source事件
kCFRunLoopBeforeWaiting = (1UL << 5),即將進入睡眠
kCFRunLoopAfterWaiting = (1UL << 6),被喚醒的狀態(tài)
kCFRunLoopExit = (1UL << 7),runloop退出
kCFRunLoopAllActivities = 0x0FFFFFFFU。所有的狀態(tài)
};
好了,上代碼。

1.添加觀察者

2.調(diào)用觀察者