NSRunLoop


  • 我们的每一个App的本质都是使用RunLoop,在不断的监听事件,保证程序不退出.
  • 主线程的消息循环默认是开启的.
  • 子线程的消息循环默认是关闭的,需要我们手动开启,只有我们自己手动关闭,才能保持线程执行完毕后,子线程自动销毁
  • 作用:
    • 它是一个死循环,它会不断的检查有没有事件,如果有事件他就处理,没有事件的话就休眠
    • RunLoop在不处理事件的时候,它是休眠的.
    • 事件: 按钮点击,屏幕点击,屏幕滚动,定时器等...
NSRunLoop_第1张图片
runloop.jpg
  • RunLoop的核心:
    • 核心1: 事件
      • 输入源事件
      • 定时源事件
    • 核心2: 运行模式
      *RunLoop在同一时间只能且必须在一种特定的模式下运行
      • 如果要更换Mode,必须先停止当前的Loop,然后再重新启动Loop
      • Mode是保证滚动流程的关键
      • NSDefaultRunLoopMode: 默认状态,空闲状态
      • UITrackingRunLoopMode: 滚动模式
      • UIInitializationRunLoopMode: 私有的,App启动时
      • NSRunLoopCommonModes: 默认包含1,2两种模式

你可能感兴趣的:(NSRunLoop)