延迟的斯威夫特3约定:如何延迟Swift 3中的for循环?
func delay(_ delay: Double, closure: @escaping()->()){
let when = DispatchTime.now() + delay
DispatchQueue.main.asyncAfter(deadline: when, execute: closure)
}
如果我把它叫做:
delay(1.0, closure: {
//Enter Code
})
这工作不同步,所以如果我把这个在for循环中,那么它会在执行所有这些命令一次延迟后。
我在for循环中,像这样:
for i in array{
//I want to do a delay here
for j in i{
//I also want to do a delay here
}
}
的这点是我想那里转移到“J”的循环之前是第一个for循环中的延迟,那里面“j”for循环,我想要一个延迟才能进入下一个J.
请帮忙,因为这个Swift 3中的延迟函数是异步的。
使用'的Thread.sleep(forTimeInterval:1.0)'代替''asyncAfter此 –