如何在 swift 中进一步减少延迟时间?

How to reduce the delay time even further in swift?

我有这个代码

let time = dispatch_time(dispatch_time_t(DISPATCH_TIME_NOW), 2 * Int64(NSEC_PER_SEC))
        dispatch_after(time, dispatch_get_main_queue()) {

我想进一步减少时间,因为 2 似乎太长了,但是当我把 1 调到快的时候,我该如何改变它以便我更好地控制时间?

谢谢

您可以延迟任何秒,因为您 like.For 例如 1.2s

let time = dispatch_time(DISPATCH_TIME_NOW,Int64(1.2 * Double(NSEC_PER_SEC)))

dispatch_time_tUInt64 时间,但是您传递 2 * Int64(NSEC_PER_SEC) 的第二个参数需要纳秒。 NSEC_PER_SEC 这是 1_000_000_000 的快捷方式。你可以玩这个值来达到你想要的时间。

示例:

UInt64(1.5 * Float(NSEC_PER_SEC))

NSEC_PER_SEC 只是一个定义值(10 亿),因此您可以通过在乘法之前除法来控制它。最好保留整数值而不是浮点数,因为这样应该更高效和准确。鉴于您知道该值是 10 的幂,您知道整数除以任何小于该数字的 10 的幂不会丢失精度。

这个例子是 1,200 毫秒:

let time = dispatch_time(DISPATCH_TIME_NOW), 1200 * Int64(NSEC_PER_SEC / 1000))

同样,您可以简化并直接输入您想要的纳秒数,但以秒而不是纳秒为单位读取数字会更容易。

let time = dispatch_time(DISPATCH_TIME_NOW), 1_200_000_000))