【问题标题】:Swift 2 executing function after 3 seconds3秒后Swift 2执行功能
【发布时间】:2016-08-16 03:20:18
【问题描述】:

我试图在 swift 2 中 3 秒后简单地执行一个函数。我尝试了很多东西,但都没有工作。这是swift 2中的精灵套件游戏,请告诉我如何做到这一点..

现在调用函数看起来像这样 self.adjustScore()

EDIT这样解决了,谢谢googe page 4

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

【问题讨论】:

  • 您可以使用执行选择器
  • 改用NSTimer
  • 不要编辑您的问题以显示正确答案;你应该回答你自己的问题。

标签: swift sprite-kit swift2


【解决方案1】:

通常我会否决上述答案,但 OP 没有在问题标题中指定它是 SpriteKit。在SpriteKit 中,您不想使用NSTimers 或调度计时器,因为如果您暂停场景,您不会暂停这些计时器。相反,使用SKAction.waitForDurationSKAction.runBlock的组合来达到预期的效果

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

【讨论】:

    【解决方案2】:

    试试这个:

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

    【讨论】:

      猜你喜欢
      • 2019-09-30
      • 2017-03-03
      • 2019-09-11
      • 2018-01-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多