我运行了一个for循环,从数组中打印出一个数字。我使用了一个延迟函数,每次将打印数字的时间延长半秒。对于前10个循环,它工作得很好,每个打印数字之间有半秒的间隔。
在它完美运行10个循环后,它将开始一次打印2个数字,在20个循环之后,它将一次打印3个。这不是我想要的,我也不确定它为什么要这样做。
这是循环和延迟函数。在循环运行之前,定时器设置为0.5。
for i in 1...30 {
delay(timer) {
print("Button \(self.newLevel[i-1].areaNumber) was lit up")
}
timer += 0.5
}
func delay(_ delay:Double, closure:@escaping ()->()) {
DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + Double(Int64(delay * Double(NSEC_PER_SEC))) / Double(NSEC_PER_SEC), execute: closure)
}
感谢您的时间/帮助。
发布于 2020-09-29 15:32:29
不确定它为什么会这样的问题的实际解决方案,但我使用了一个带有计数器的计时器来触发建议的无效,这是一个完美的解决方案。
再次感谢。
https://stackoverflow.com/questions/64120285
复制