美文网首页
Runloop与NSTimer

Runloop与NSTimer

作者: 应久 | 来源:发表于2019-03-21 09:57 被阅读0次

RunLoop和NSTimer1:

滑动TableView的时候我们的定时器还会生效吗?

当前线程正常请看下是运行在kCFRunLoopDefaultMode,当滑动tableview时,会发生mode的切换,切换到UITrackingRunLoopMode,此时定时器就不会再生效。

RunLoop和NSTimer2:

void CFRunLoopAddTimer(runLoop,timer,commonMode);

把NSTimer添加到当前runloop的commonMode中。

commonMode并不是实际存在的mode,它只是把一些mode打上commonMode的标记,把某个事件源同步到多个mode当中。

CommonMode的特殊性:

NSRunLoopCommonModes字符串常量来表达CommonMode。

1)CommonMode并不是实际存在的mode。

2)是同步source、timer、observer到多个mode的一个技术方案。

同一个timer、observer、source事件可以添加到多个mode上,这样保证mode切换的时候正常处理接收事件。需要借助CommonMode。

RunLoop的Mode:

当我们运行在mode1上时,只能接收处理mode1当中的source1,timers,observers.不能处理mode2、mode3里的。


各个数据之间的关系:

runloop和model是一对多的关系。

mode和source,timer,observer也是一对多的关系。


CFRunLoopObserver 2:

6个观测时间点。

1)kCFRunLoopEntry:

runloop的入口时机,当runloop启动时,系统会给我们一个回调通知。

2)kCFRunLoopBeforeTimers:

通知观察者,runloop将要对NSTimer一些相关事件进行处理。

3)kCFRunLoopBeforeSources

将要处理一些source事件。

4)kCFRunLoopBeforeWaiting

当前runloop将要进行休眠状态。即将要发生用户态到内核态的切换。

5)kCFRunLoopAfterWaiting

发生的时机是从内核态切换到用户态之后。

6)kCFRunLoopExit

runloop退出的通知。

相关文章

  • iOS面试之RunLoop模块

    RunLoop RunLoop内容如下 概念 数据结构 事件循环 RunLoop与NSTimer RunLoop与...

  • OC--RunLoop应用例子

    知识点:1、RunLoop的基础知识2、RunLoop 与 NSTimer3、RunLoop 与 Perform ...

  • NSTimer的循环引用

    NSTimer基本使用 NSTimer与RunLoop NSTimer 循环引用的问题 如何在子线程使用NSTim...

  • iOS开发 之 不要告诉我你会用NSTimer!

    目录 引言 创建NSTimer 销毁NSTimer NSTimer与runloop 附录 引言 为什么想起来要讨论...

  • RunLoop

    概念 数据结构 事件循环机制 RunLoop 与 NSTimer RunLoop 与多线程 一、概念 RunLoo...

  • [iOS面试]第7章 RunLoop相关面试问题

    本文主讲RunLoop相关面试问题,包括RunLoop概念、数据结构、事件循环机制、RunLoop与NSTimer...

  • ZJYiOS学习规划

    一、runloop 1.runloop与线程之间的关系 2.runloop的启动模式与NSTimer使用时候的注意...

  • NSTimer、CADisplayLink、GCD定时器

    一、NSTimer NSTimer和CADisplayLink依赖于RunLoop,如果RunLoop的任务过于繁...

  • iOS-RunLoop

    本文主要内容: 概念 数据结构 事件循环的实现机制 RunLoop与NSTimer RunLoop与线程 源码 一...

  • Runloop 与 NSTimer

    一、Runloop 1、作用1.保持程序运行2.处理app的各种事件(比如触摸,定时器等等)3.节省CPU资源,提...

网友评论

      本文标题:Runloop与NSTimer

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