美文网首页2018技术笔记
2018笔记——Runloop状态监听

2018笔记——Runloop状态监听

作者: 满庭花醉三千客 | 来源:发表于2018-07-28 11:08 被阅读164次

NSTimer与ScrollView存在一些交互时,需要监听一下Runloop的状态:

//创建一个Observer,观察RunLoop的所有状态

CFRunLoopObserverRef observer = CFRunLoopObserverCreateWithHandler(CFAllocatorGetDefault(), kCFRunLoopAllActivities, YES, 0, ^(CFRunLoopObserverRef observer, CFRunLoopActivity activity) {

    /*

     kCFRunLoopEntry = (1UL << 0), //即将进入Runloop 2^0 = 1

     kCFRunLoopBeforeTimers = (1UL << 1), //即将处理NSTimer 2^1 = 2

     kCFRunLoopBeforeSources = (1UL << 2), //即将处理Sources 2^2 = 4

     kCFRunLoopBeforeWaiting = (1UL << 5), //即将进入休眠  2^5 = 32

     kCFRunLoopAfterWaiting = (1UL << 6), //刚从休眠中唤醒  2^6 = 64

     kCFRunLoopExit = (1UL << 7), //即将退出runloop 2^7 = 128

     */

    //这里打印出来的数字是上面数字X的2^X

    NSLog(@"RunLoop状态  %zd", activity);

});

我们滑动table时:

屏幕快照 2018-04-09 上午11.08.13.png

第三个状态为128,说明之前的RunLoop被退出了,重新开始了一个新的RunLoop。

加油~

相关文章

  • 2018笔记——Runloop状态监听

    NSTimer与ScrollView存在一些交互时,需要监听一下Runloop的状态: 我们滑动table时: 第...

  • RunLoop -- CFRunLoopObserverRef

    有的时候我们也会自己创建一些Observer去监听RunLoop的状态RunLoop的状态 接下来,监听一下Run...

  • iOS底层-- RunLoop

    手动目录RunLoop 6大响应事件RunLoop 与线程的关系RunLoop状态监听RunLoop 数据结构Ru...

  • CFRunloopObserverRef 的简单介绍

    CFRunloopObserverRef是观察者,能够监听runloop状态的改变。 监听的步骤:1.创建监听者 ...

  • iOS:NSRunLoop浅析

    监听RunLoop的状态 RunLoop的一些说明: 一个 RunLoop 包含若干个 Mode,每个 Mode ...

  • CFRunLoopObserverRef 类

    CFRunLoopObserverRef是观察者,能够监听RunLoop的状态改变 可以监听的时间点有以下几个:可...

  • iOS常规的优化技巧

    原文地址 卡顿优化 添加Observer到主线程RunLoop中,通过监听RunLoop状态切换的耗时,以达到监控...

  • Runloop记录

    流程 添加 Observer 可以监听到 RunLoop 的各种状态 kCFRunLoopEntry: 进入 Ru...

  • iOS RunLoop 相关面试题

    RunLoop监听 Runloop运行逻辑

  • 自动释放池

    自动释放池是通过Observer监听RunLoop的状态, 一旦进去睡眠状态(KCFRunLoopBeforeWa...

网友评论

    本文标题:2018笔记——Runloop状态监听

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