美文网首页
关于Runloop

关于Runloop

作者: 攻克乃还_ | 来源:发表于2017-10-01 22:18 被阅读3次

一、基本

  • 1.在runloop中有多个运行模式,但是只能选择一种模式运行
  • 2.runloop运行至少要有一个timer或者是source
  • 3.界面被拖拽时候,模式自动改为UITrackingRunLoopMode
  • 4.kCFRunLoopCommonModes模式包含了kCFRunLoopDefaultModeUITrackingRunLoopMode

二、Runloop内部

  • runloop里面包含了Source,Observer, Timer
  • Source又分为Port-Based Sources端口源, Custom Input Sources自定义源, Cocoa Perform Selector Sources
  • Source又分为基于端口的(系统的)和非基于端口的

三、执行任务完毕后线程被销毁,如何开启常驻线程?为什么要开启?

  • 开启常驻线程处理整个应用中的网络请求
  • 1.开启常驻线程:在当前runloop中添加源或者NSTimer:(不推荐)
NSRunLoop *runloop = [NSRunLoop currentRunLoop];
NSTimer *timer = [NSTimer timerWithTimeInterval:2.0 target:self selector:@selector(run) userInfo:nil repeats:YES];
[runloop addTimer:timer forMode:NSDefaultRunLoopMode];
  • 2.开启常驻线程:添加基于端口的事件(推荐)
[runloop addPort:[NSPort port] forMode:NSDefaultRunLoopMode];
[runloop run];

四、Runloop运行逻辑:

1.通知观察者即将进入runloop

2.通知观察者要处理定时器和源事件
3.处理定时器和源事件

4.通知观察者即将进入休眠
5.已经进入休眠
6.通知观察者runloop被唤醒

7.通知观察者即将推出runloop

五、Runloop中自动释放池的创建和释放

  • 第一次创建:
    • 即将进入runloop
  • 最后一次销毁:
    • 即将推出runloop
  • 其他时候的创建和销毁
    • 当runloop 即将睡眠 的时候,销毁之前的释放池, 重新创建一个新的

runloop的不同模式

 1.UIInitializationRunLoopMode:启动时
 2.UITrackingRunLoopMode:ScrollView滑动时 
 3.NSDefaultRunLoopMode:默认/空闲状态
 4.NSRunLoopCommonModes:2,3 Mode
 苹果公开的 Mode :3,4

相关文章

  • RunLoop学习资料

    非常好的runloop学习系列 CoreFoundation源码 RunLoop系列之源码分析 关于Runloop...

  • Runloop的模式及应用

    runloop的5个类 首先,Core Foundation中关于runloop的类: runloop运行时,只能...

  • 记录一些介绍Runloop的牛文

    老司机出品——源码解析之RunLoop详解深入理解RunLoop关于RunLoop部分源码的注释CFRunLoop...

  • RunLoop汇总

    RunLoop 入门 看我就够了RunLoop 已入门?不来应用一下?ibireme的文章,关于RunLoop背后...

  • iOS RunLoop

    关于 runloop 面试中经常被问到: 讲讲 RunLoop,项目中有用到吗? RunLoop内部实现逻辑? R...

  • 了解runloop(二)

    RunLoop 对外的接口在 CoreFoundation 里面关于 RunLoop 有5个类: CFRunLoo...

  • RunLoop -- CFRunLoopRef

    RunLoop相关的类 Core Foundation中关于RunLoop的几个类 CFRunLoopRef CF...

  • Runloop在实际中到底有什么用?

    在面试中经常会被问到关于Runloop的问题,比如: runloop和线程有什么关系? runloop的mode作...

  • RunLoop学习总结

    通过以下文章学习记录 关于Runloop的原理探究及基本使用 深入理解RunLoop RunLoop完全指南 Ru...

  • RunLoop的各种运行模式

    RunLoop运行模式相关 Core Foundation框架中关于RunLoop的5个类 CFRunLoopRe...

网友评论

      本文标题:关于Runloop

      本文链接:https://www.haomeiwen.com/subject/yroaextx.html