延遲的斯威夫特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此 –