什么是运行循环
- 消息循环又叫运行循环.
NSRunloop
就是消息循环,每一个线程内部都有一个消息循环.目的:检测事件放在线程执行- 只有主线程的消息循环是默认开启,是专门为主线程检测UI交互事件的;子线程的消息循环默认不开启,因为子线程不是用来处理UI交互事件的
运行循环的目的
- 保证程序不退出.
- 负责处理输入事件.
- 如果没有事件发生,会让程序进入休眠状态.
输入事件
Runloop
接收输入事件来自两种不同的来源 : 输入源input source
和定时源timer source
.
消息循环运行的模式
- 消息循环也是要运行在某一特定的模式上的.
- NSDefaultRunLoopMode
- UITrackingRunLoopMode
- NSRunLoopCommonModes : 包含了以上两种模式.
- 注意 : 只有输入源的运行模式和消息循环的运行模式保持一致,输入源对应的事件才能被消息循环检测到.