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

时间:2015-11-04 11:18:31

标签: ios xcode swift xcode7

我有这段代码

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

我希望进一步缩短时间,因为2看起来太长了,但是当我把它改为快速时,我怎么能改变它以便我对时间有更多的控制?

谢谢

3 个答案:

答案 0 :(得分:0)

您可以随意延迟任何秒数。例如1.2s

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

答案 1 :(得分:0)

dispatch_time_t时间UInt64,但传递2 * Int64(NSEC_PER_SEC)的第二个参数需要纳秒。 NSEC_PER_SEC这是1_000_000_000的快捷方式。您可以使用此值来实现您的愿望时间。

示例:

UInt64(1.5 * Float(NSEC_PER_SEC))

答案 2 :(得分:0)

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))