1:runloop是什么
runloop其实是一个对象,提供一个入口函数,程序启动的时候,程序就会进入一个运行循环,内部其实是个do...while循环


2:runloop的作用
1:保证程序正常运行
2:处理app中的各种事件 (触摸,定时器,performSelector)
3:节省cpu资源,提高程序的性能(该做事的时候被唤醒做事,该休息的时候,就进入休眠状态休息)
3:runloop和线程的关系


4:runloop源码分析-runloop对象和mode
一个runloop可以包含多种mode,一个mode包含多个item
常用的model,CFRunLoopModeRef{
kCFRunLoopDefaultMode App的默认 Mode,通常主线程是在这个 Mode 下运行的.
UITrackingRunLoopMode 界面跟踪 Mode,用于 ScrollView 追踪触摸滑动,保证界面滑动时不受其他 Mode 影响.
UIInitializationRunLoopMode 在刚启动 App 时第进入的第一个 Mode,启动完成后就不再使用.
GSEventReceiveRunLoopMode 接受系统事件的内部 Mode,通常用不到.
kCFRunLoopCommonModes 这是一个占位的 Mode,没有实际作用.
}


5:runloop原理

6:待续.....
网友评论