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."
您不应将其视为以秒或纳秒表示的时间,因此您的输出没有任何问题。
考虑以下代码:
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."
您不应将其视为以秒或纳秒表示的时间,因此您的输出没有任何问题。