【发布时间】:2017-09-26 00:34:06
【问题描述】:
我试图在 Swift4 中创建一个由变量控制的计时器,唯一的问题是我得到一个错误:
无法将“UInt64”类型的值转换为预期的参数类型“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。
我该怎么做?
【问题讨论】: