NSRunLoop


  • 我们的每一个App的本质都是使用RunLoop,在不断的监听事件,保证程序不退出.
  • 主线程的消息循环默认是开启的.
  • 子线程的消息循环默认是关闭的,需要我们手动开启,只有我们自己手动关闭,才能保持线程执行完毕后,子线程自动销毁
  • 作用:
    • 它是一个死循环,它会不断的检查有没有事件,如果有事件他就处理,没有事件的话就休眠
    • RunLoop在不处理事件的时候,它是休眠的.
    • 事件: 按钮点击,屏幕点击,屏幕滚动,定时器等...
runloop.jpg
  • RunLoop的核心:
    • 核心1: 事件
      • 输入源事件
      • 定时源事件
    • 核心2: 运行模式
      *RunLoop在同一时间只能且必须在一种特定的模式下运行
      • 如果要更换Mode,必须先停止当前的Loop,然后再重新启动Loop
      • Mode是保证滚动流程的关键
      • NSDefaultRunLoopMode: 默认状态,空闲状态
      • UITrackingRunLoopMode: 滚动模式
      • UIInitializationRunLoopMode: 私有的,App启动时
      • NSRunLoopCommonModes: 默认包含1,2两种模式
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容