dispatch_time_t输出值

dispatch_time_t output value

考虑以下代码:

dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2.5 * NSEC_PER_SEC));

    dispatch_after(popTime, dispatch_get_main_queue(), ^{
        NSLog(@"Popped after %llu time!", popTime);
    });

它输出的不是 2.5 秒,而是 4445236369163。

怎么可能? Dispatch_time_t 只是 typedef for uint64_t,它只是一个无符号整数,没有符号扩展位。

即使有那个奇怪的值,应用程序也能正常工作,在 2.5 秒后输出日志。

如果您查看文档,dispatch_time_t 是:

"A somewhat abstract representation of time." 

您不应将其视为以秒或纳秒表示的时间,因此您的输出没有任何问题。