错误:无法将类型的价值“UINT64”预期参数类型“DispatchTime”
问题描述:
我试着去创造Swift4一个计时器,由可变控制,唯一的问题是,我得到一个错误:错误:无法将类型的价值“UINT64”预期参数类型“DispatchTime”
Cannot convert value of type 'UInt64' to expected argument type 'DispatchTime'
下面是代码:
let maxNumber = maxNumberField.intValue
let amountOfNumbers = amountOfNumbersField.intValue
var delay = 5
var x: Int32 = amountOfNumbers
while(x > 0){
let when = (DispatchTime.now().uptimeNanoseconds + (5 * UInt64(x)))
DispatchQueue.main.asyncAfter(deadline: when) { // error
let number = arc4random_uniform(UInt32(maxNumber + 1))
let synth = NSSpeechSynthesizer()
synth.startSpeaking(String(number))
}
x = (x - 1)
}
从我的理解,我需要的when
变量,它是一个UInt64
到DispatchTime
转换。
我该怎么做?
答
您应该:
使用DispatchTime.init(uptimeNanoseconds:)你
when
变量。使用这个:
let when = (DispatchTime.now() + (5 * Double(x)))
,因为有+
过载(DispatchTime, Double)
。