Runloop:运行循环
1.保证程序不退出
2.负责事件的监听,计时器,触摸事件,网络事件
3.当没有事件发生的时候,会让程序进入休眠状态
4.渲染屏幕上的点,一次Runloop循环,渲染屏幕上所有的点
//监听Runloop循环,一次循环就从数组里面取一个任务去执行
//CFRunloop
/*
CFRunLoopSourceRef 事件源
CFRunLoopObserverRef 观察者
CFRunLoopTimerRef 计时器
*/
/* Run Loop Observer Activities */
typedef CF_OPTIONS(CFOptionFlags, CFRunLoopActivity) {
kCFRunLoopEntry = (1UL << 0),
kCFRunLoopBeforeTimers = (1UL << 1),
kCFRunLoopBeforeSources = (1UL << 2),
kCFRunLoopBeforeWaiting = (1UL << 5),
kCFRunLoopAfterWaiting = (1UL << 6),
kCFRunLoopExit = (1UL << 7),
kCFRunLoopAllActivities = 0x0FFFFFFFU
};