CFRunloopObserverRef 的簡單介紹

weixin_34162695發表於2017-08-09

CFRunloopObserverRef是觀察者,能夠監聽runloop狀態的改變。

監聽的步驟:1.建立監聽者  2.新增監聽者。

runloop的狀態可以分為以下幾種:

typedef CF_OPTIONS(CFOptionFlags, CFRunLoopActivity) {

kCFRunLoopEntry = (1UL << 0),即將進入runloop

kCFRunLoopBeforeTimers = (1UL << 1),即將處理timer事件

kCFRunLoopBeforeSources = (1UL << 2),即將處理source事件

kCFRunLoopBeforeWaiting = (1UL << 5),即將進入睡眠

kCFRunLoopAfterWaiting = (1UL << 6),被喚醒的狀態

kCFRunLoopExit = (1UL << 7),runloop退出

kCFRunLoopAllActivities = 0x0FFFFFFFU。所有的狀態

};

好了,上程式碼。


1113570-03d0ee4574220a0e.png
1.新增觀察者


1113570-4d83332480c82aee.png
2.呼叫觀察者