微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Swift:SKAction.runBlock – >在调用中缺少参数’completion’的参数但是为什么?

我是斯威夫特的noobie.我无法弄清楚为什么这段代码
class GameScene: SKScene,SKPhysicsContactDelegate {
  var statements = Statements()

 override func didMovetoView(view: SKView) {
    runAction(SKAction.repeatActionForever(
       SKAction.sequence([
         SKAction.runBlock(addLabel(statements)),SKAction.waitForDuration(2.0)
       ])
     ))
 }
 func addLabel(statements: Statements) {...}
}

结果:在调用中缺少参数“完成”的参数

类型检查器中的另一个奇怪的错误.因为self.addLabel(self.statements)的类型不是Void – > Void它是Void,编译器假设你在其他地方调用一个方法(其他地方的地方,我不知道.在我能找到的任何地方都没有名为runBlock(_ :)的方法).当这样的事情发生时尝试一个明确的闭包
class GameScene: SKScene {
    var statements = Statements()

    override func didMovetoView(view: SKView) {
        runAction(SKAction.repeatActionForever(SKAction.sequence([
            SKAction.runBlock({ self.addLabel(self.statements) }),SKAction.waitForDuration(2.0)
        ])))
    }

    func addLabel(statements: Statements) -> Void { }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐