2017-06-19 45 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

感谢,它的工作! –