2017-06-19 76 views
0

我想在某個日期執行一段代碼。我不能使用的NSTimer,因爲這代碼SI的目的,在一個完美的script.`快速異步代碼執行停止之前

import Foundation 



let timeInterval: TimeInterval = 10 


let future = Date().addingTimeInterval(timeInterval) 

print("start") 
    while true { 
     if Date() > future { 
      print("stop") 
      break 
     } 
} 

的問題是,它有時間來打印「停止」之前結束程序使用。另外當我嘗試打印循環內的東西時,它會在程序結束前打印幾次。任何想法如何做到這一點?

謝謝!

回答

1

while true想法是非常糟糕的,你應該使用大中央調度代替

print("start") 
DispatchQueue.main.asyncAfter(deadline: .now() + 10) { 
    print("stop") 
} 
+0

感謝,它的工作! –