RunLoop

1.CFRunLoopModeRef特征代表RunLoop对象内的运行模式(每个RunLoop对象内存中存在很多种运行模式,每个Mode运行模式下必然包含若干个有效的Source0/Source1/Timer/Observer数据序组)
2.RunLoop对象活跃(操作)启动时能且仅能选择某个Mode匹配currentMode(暗示Loop对象的操作运行必然是处于模态下,假设如果不存在模态则Loop对象无法实现操作(如果Loop对象需要切换Mode模态(由原Mode模态Origin切换为目标Mode模态Destination)(Loop对象只能先退出原Mode模态Origin先环路退出操作再重新选择目标Mode模态进入操作)。
3.不同数据序组的Source0/Source1/Timer/Observer彼此之间并行互不影响
4.如Loop对象内全部Mode模态对象里面都没有任何有效的Source0/Source1/Timer/Observer数据序组,RunLoop对象会立马退出(消退不活动/Loop对象仍然存在)
5.特定时刻点Loop对象能且仅能在某种单模态下运行,对渲染性能存在好处,增加渲染的流畅性(如项目当前处于滑动模态下则不考虑非滑动的模式,此时资源使用的重心在渲染即此时优先处理渲染的问题所以顺畅很多)。Loop对象内不同模态之间的切换是在dowhile循环体里面切换的不会导致程序退出。
6.Loop对象内存在很多的Mode模态对象(重点分析的模态对象)
KCFRunLoopDefaultMode (NSDefaultRunLoopMode):App应用程序涉及的默认Mode模态对象(通常主线程依赖默认Mode模态对象)
UITrackingRunLoopMode:界面追踪Mode模态对象,用于定向追踪处理ScrollView触摸滑动信号,保证界面滑动时可避开其他Mode模态对象的影响。

你可能感兴趣的:(RunLoop,mode)