dispatch_time_t

2018-09-11  本文已影响193人  zcc_ios

写在最前面:
转自:https://blog.csdn.net/wpeng20125/article/details/73650569
对原文作了下排版利于理解,也感谢原文作者为我们说明这个函数

dispatch_time_t 类型,它的创建有两个函数

        #define NSEC_PER_MSEC 1000000ull    每毫秒有1000000纳秒
        #define USEC_PER_SEC 1000000ull     每秒有1000000微秒
        #define NSEC_PER_USEC 1000ull       每微秒有1000纳秒

注意 delta 的单位是纳秒!
1秒的写作方式可以是 1* NSEC_PER_SEC; 1000* NSEC_PER_MSECUSEC_PER_SEC* NSEC_PER_USEC

两个函数的不同
例如:
从现在开始,1小时之后是触发某个事件

使用第一个函数创建的是一个相对的时间,第一个参数开始时间参考的是当前系统的时钟,当 device 进入休眠之后,系统的时钟也会进入休眠状态, 第一个函数同样被挂起; 假如 device 在第一个函数开始执行后10分钟进入了休眠状态,那么这个函数同时也会停止执行,当你再次唤醒 device 之后,该函数同时被唤醒,但是事件的触发就变成了从唤醒 device 的时刻开始,1小时之后.

而第二个函数则不同,他创建的是一个绝对的时间点,一旦创建就表示从这个时间点开始,1小时之后触发事件,假如 device 休眠了10分钟,当再次唤醒 device 的时候,计算时间间隔的时间起点还是,开始时就设置的那个时间点, 而不会受到 device 是否进入休眠影响

上一篇 下一篇

猜你喜欢

热点阅读