我有这段代码
let time = dispatch_time(dispatch_time_t(DISPATCH_TIME_NOW), 2 * Int64(NSEC_PER_SEC))
dispatch_after(time, dispatch_get_main_queue()) {
我希望进一步缩短时间,因为2看起来太长了,但是当我把它改为快速时,我怎么能改变它以便我对时间有更多的控制?
谢谢
答案 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))