如何向 DispatchQueue 添加时间延迟变量
How to Add a Time Delay Variable to DispatchQueue
首先我使用 arc4random
创建了一个 randomDelay 值
然后我想将 randomDelay 值添加到 DispatchQueue 以创建一个随机时间延迟变量
这是我的代码:
func animation1() {
UIView.animate(withDuration: 1, animations: {
// various code
}, completion: { (true) in
//delay calling the function by the randomDelay value of '0' to '2' seconds
let randomDelay = arc4random_uniform(3)
DispatchQueue.main.asyncAfter(deadline: .now() + randomDelay) { // the randomDelay value throws an unresolved identifier 'randomDelay' error
self.showAnimation2() // Go to the next function
}
})
}
谢谢
我想这对你有帮助!
let aRandomVar = 2 // change 2 to desired number of seconds
let when = DispatchTime.now() + Double(aRandomVar)
DispatchQueue.main.asyncAfter(deadline: when) {
// Your code with delay
}
您需要将 randomDelay
转换为 Double
。然后你使用它如下:
let randomDelay = arc4random_uniform(3)
DispatchQueue.main.asyncAfter(deadline: .now() + Double(randomDelay)) {
}
你没说随机数是什么时间单位,建议你select一个单位。例如秒数:
DispatchQueue.main.asyncAfter(deadline: .now() + .seconds(Int(randomDelay)), execute: {...})
或毫秒:
DispatchQueue.main.asyncAfter(deadline: .now() + .milliseconds(Int(randomDelay)), execute: {...})
首先我使用 arc4random
创建了一个 randomDelay 值然后我想将 randomDelay 值添加到 DispatchQueue 以创建一个随机时间延迟变量
这是我的代码:
func animation1() {
UIView.animate(withDuration: 1, animations: {
// various code
}, completion: { (true) in
//delay calling the function by the randomDelay value of '0' to '2' seconds
let randomDelay = arc4random_uniform(3)
DispatchQueue.main.asyncAfter(deadline: .now() + randomDelay) { // the randomDelay value throws an unresolved identifier 'randomDelay' error
self.showAnimation2() // Go to the next function
}
})
}
谢谢
我想这对你有帮助!
let aRandomVar = 2 // change 2 to desired number of seconds
let when = DispatchTime.now() + Double(aRandomVar)
DispatchQueue.main.asyncAfter(deadline: when) {
// Your code with delay
}
您需要将 randomDelay
转换为 Double
。然后你使用它如下:
let randomDelay = arc4random_uniform(3)
DispatchQueue.main.asyncAfter(deadline: .now() + Double(randomDelay)) {
}
你没说随机数是什么时间单位,建议你select一个单位。例如秒数:
DispatchQueue.main.asyncAfter(deadline: .now() + .seconds(Int(randomDelay)), execute: {...})
或毫秒:
DispatchQueue.main.asyncAfter(deadline: .now() + .milliseconds(Int(randomDelay)), execute: {...})