2016-08-16 82 views
1

我想在swift 2中3秒後簡單地執行一個函數。我嘗試過很多事情,但都沒有工作。這是迅速2精靈套件的比賽,普萊斯告訴我該怎麼做..Swift 2在3秒後執行函數

調用函數現在看起來是這樣 self.adjustScore()

編輯解決這個樣子,使用Googe感謝第4頁

 let triggerTime = (Int64(NSEC_PER_SEC) * 1) 
      dispatch_after(dispatch_time(DISPATCH_TIME_NOW, triggerTime), dispatch_get_main_queue(), {() -> Void in 
       self.adjustScore() 
      })   
    }) 
+0

您可以執行用戶選擇使用 –

+0

'NSTimer'代替。 – Khundragpan

+0

請勿編輯您的問題以顯示正確答案;你應該回答你自己的問題。 – penatheboss

回答

2

試試這個:

let time = dispatch_time(DISPATCH_TIME_NOW, Int64(3.0 * Double(NSEC_PER_SEC))) 
dispatch_after(time, dispatch_get_main_queue()) { 
    self.adjustScore() 
} 
4

通常我會downvote上面的答案,但OP沒有在問題標題中指定它是SpriteKit。在SpriteKit中,您不想使用NSTimers或調度計時器,因爲如果暫停場景,則不會暫停這些計時器。相反,使用的SKAction.waitForDurationSKAction.runBlock的組合來達到預期的效果

self.runAction(SKAction.sequence([SKAction.waitForDuration(3),SKAction.runBlock({[[unowned self] in self.adjustScore()})]) 
+1

這是正確的代碼,如果您使用SpriteKit –

+0

Upvote爲正確的SpriteKit方式。 – crashoverride777