gpt4 book ai didi

swift - DispatchQueue.main.asyncAfter(deadline : . now() + 5.0) 如何在 Swift 3 中工作?

转载 作者:可可西里 更新时间:2023-11-01 01:27:31 25 4
gpt4 key购买 nike

在 Swift 3 中,GCD 的语法发生了很大变化。

对 dispatch_after() 的调用现在看起来像这样:

DispatchQueue.main.asyncAfter(deadline: .now() + 5.0) {//do something}

该代码会在 block 被调用 5 秒后调用它。

这是如何运作的?文档说 deadline 参数是 dispatch_time_t,它是 UInt64 的类型别名。我假设它是以纳秒为单位的马赫时间。但是,.now() + delay 语法将小数秒添加到值中。 DispatchTime.now() 不返回 UInt64 吗?如果是这样,向其添加小数秒应该不起作用。如果有的话,我希望添加到 .now() 的值被视为纳秒,这不是很有用。

(在 swift 2 中,您过去必须将该值乘以每秒纳秒数的常数。)

最佳答案

好的,我在这个线程中找到了我自己的问题的答案:

How do I write dispatch_after GCD in Swift 3?

显然有一个 + 运算符的覆盖,它接受一个 DispatchTime 和一个 double ,将 double 视为十进制秒,并返回结果 DispatchTime.

关于swift - DispatchQueue.main.asyncAfter(deadline : . now() + 5.0) 如何在 Swift 3 中工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40662045/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com