Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 2在3秒后执行功能_Swift_Sprite Kit_Swift2 - Fatal编程技术网

Swift 2在3秒后执行功能

Swift 2在3秒后执行功能,swift,sprite-kit,swift2,Swift,Sprite Kit,Swift2,我试图在swift 2中3秒后执行一个函数。我尝试过很多事情,但都没有成功。这是swift 2中的一款精灵套装游戏,请告诉我怎么做 现在调用函数的方式如下所示 self.adjustScore() 编辑这样解决,谢谢谷歌第4页 let triggerTime = (Int64(NSEC_PER_SEC) * 1) dispatch_after(dispatch_time(DISPATCH_TIME_NOW, triggerTime), dispatch_ge

我试图在swift 2中3秒后执行一个函数。我尝试过很多事情,但都没有成功。这是swift 2中的一款精灵套装游戏,请告诉我怎么做

现在调用函数的方式如下所示
self.adjustScore()

编辑这样解决,谢谢谷歌第4页

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

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

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

通常我会对上述答案投反对票,但OP没有在问题标题中指定它是
SpriteKit
。在
SpriteKit
中,您不希望使用
NSTimers
或调度计时器,因为如果暂停场景,则不会暂停这些计时器。相反,使用
SKAction.waitForDuration
SKAction.runBlock
的组合来实现所需的效果

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

通常我会对上述答案投反对票,但OP没有在问题标题中指定它是
SpriteKit
。在
SpriteKit
中,您不希望使用
NSTimers
或调度计时器,因为如果暂停场景,则不会暂停这些计时器。相反,使用
SKAction.waitForDuration
SKAction.runBlock
的组合来实现所需的效果

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

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