我正在尝试在Swift4中为计时器设置一个可变时间延迟,但是当我输入变量时我得到了错误:
Binary operator '+' cannot be applied to operands of type 'DispatchTime' and 'Int32'
我使用了代码:
let when = (DispatchTime.now() + (5 * x))
变量“x”是Int32
如果您知道如何解决问题,请提供帮助。
答案 0 :(得分:3)
你可以这样做:
let x: Int32 = 2
let when = (DispatchTime.now().uptimeNanoseconds + (5 * UInt64(x)))
问题是你不能总结不同的类型。 DispatchTime使用64位(无符号)表示,因此您可以使用UInt64(x)
进行转换。
要从DispatchTime获取UInt64
,您可以使用uptimeNanoseconds
或rawValue
答案 1 :(得分:1)
var dispatchAfter = DispatchTimeInterval.seconds(1)
DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + dispatchAfter, execute: {
// Do your thing
})