我在Swift代碼中遇到sleep
函數的問題。我正在使用import Darwin
和usleep(400000)
。達到睡眠之前的一些行動被阻止,我不知道爲什麼。這裏從我的代碼很短的例子:Swift中的延遲/睡眠不起作用
@IBAction func Antwort4Button(_ sender: Any) {
if (richtigeAntwort == "4"){
Antwort4.backgroundColor = UIColor.green
Ende.text = "Richtig!"
NaechsteFrage()
}
else {
Ende.text = "Falsch!"
//NaechsteFrage()
}
}
func NaechsteFrage() {
usleep(400000)
Antwort1.backgroundColor = UIColor.red
Antwort2.backgroundColor = UIColor.red
Antwort3.backgroundColor = UIColor.red
Antwort4.backgroundColor = UIColor.red
Ende.text = ""
FragenSammlung()
}
此線將不會執行:
Antwort4.backgroundColor = UIColor.green
Ende.text = "Richtig!"
爲什麼調用sleep阻止這些行爲?如果我刪除import Darwin
和sleep
,我的代碼工作正常。有沒有人有想法?對不起,我的英文不好:P
請勿使用「sleep」或變體。你阻止主線程無所事事。使用['dispatch_after'](https://developer.apple.com/reference/dispatch/1452876-dispatch_after) – jcaron