如何在 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_t
是 UInt64
时间,但是您传递 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))
我有这个代码
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_t
是 UInt64
时间,但是您传递 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))