在swift中延迟函数

我没有代码样本或任何东西,因为我不知道如何去做,但有人可以告诉我如何延迟一个函数迅速一段时间?

您可以使用GCD(例如延迟10秒):

Swift 2:

 let triggerTime = (Int64(NSEC_PER_SEC) * 10) dispatch_after(dispatch_time(DISPATCH_TIME_NOW, triggerTime), dispatch_get_main_queue(), { () -> Void in self.functionToCall() }) 

Swift 3:

 DispatchQueue.main.asyncAfter(deadline: .now() + 10.0, execute: { self.functionToCall() }) 
  NSTimer.scheduledTimerWithTimeInterval(NSTimeInterval(3), target: self, selector: "functionHere", userInfo: nil, repeats: false) 

这将以3秒的延迟调用函数functionHere()

Swift 3版本延迟10秒

 unowned let unownedSelf = self let deadlineTime = DispatchTime.now() + .seconds(10) DispatchQueue.main.asyncAfter(deadline: deadlineTime, execute: { unownedSelf.functionToCall() }) 

为延迟函数添加参数。

首先设置一个字典,然后将其添加为userInfo。 用定时器作为参数打开信息。

 let arg : Int = 42 let infoDict : [String : AnyObject] = ["argumentInt", arg] NSTimer.scheduledTimerWithTimeInterval(NSTimeInterval(3), target: self, selector: "functionHereWithArgument:", userInfo: infoDict, repeats: false) 

然后在被调用的函数中

 func functionHereWithArgument (timer : NSTimer) { if let userInfo = timer.userInfo as? Dictionary<String, AnyObject> { let argumentInt : Int = (userInfo[argumentInt] as! Int) } }