1.什么是消息循环?
runLoop 是事件循环,负责监听事件,保证应用程序持续运行. 监听到事件后,向注册的对象发送消息,从而实现响应.
1)runLoop 就是消息循环,每个线程都有一个消息循环,消息循环监听着输入事件
2)主线程默认开启消息循环,子线程中消息循环默认不开启.如果线程中无法监听到方法需要执行,就会销毁.所以需要手动开启子线程的消息循环
2.runLoop 事件类型:
1) Input Sources(输入源)
2) Timer Sources(定时源)
3.runLoop(消息循环)目的:
1)保证程序不退出
2)负责处理事件输入
3)如果没有事件,让程序进入休眠,避免占用资源
4)当有事件需要处理时,马上唤醒
简单说就是,保证程序在执行过程中不被系统终止,确保不断的监听用户的行为
4.runLoop 运行模式主要有4种:
1)默认模式 一般的方法调用使用的模式
2)追踪模式 用于 scrollView 追踪触摸滑动,使其不收其他模式影响,可以共存
3)当程序第一次启动时,第一次开启的运行循环
4)占位模式
runLoop 的本质其实是一个结构体,里面有 observer,NSTimer,source等.
5.runLoop的使用:
1)创建输入源,例如创建一个定时器
2)指定该事件源在循环中的运行模式
3)将事件源加入循环