【发布时间】:2017-04-01 10:00:37
【问题描述】:
在 Swift 3 中,GCD 的语法发生了很大变化。
对 dispatch_after() 的调用现在如下所示:
DispatchQueue.main.asyncAfter(deadline: .now() + 5.0) {//do something}
该代码将在调用块 5 秒后调用该块。
它是如何工作的?文档说截止日期参数是dispatch_time_t,它是 UInt64 的类型别名。我认为这是一个以纳秒为单位的马赫时间。但是,.now() + delay 语法将小数秒添加到值中。 DispatchTime.now() 不返回 UInt64 吗?如果是这样,添加小数秒不应该工作。如果有的话,我希望添加到 .now() 的值被视为纳秒,这不是很有用。
(在 swift 2 中,您过去必须将该值乘以一个常数以获得每秒的纳秒数。)
【问题讨论】:
标签: swift grand-central-dispatch dispatch-after