我是Swift中的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) {...}
}

结果为:调用中缺少参数“completion”的参数

最佳答案

类型检查器中还有另一个奇怪的错误。因为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 { }
}

关于Swift:SKAction.runBlock->调用中缺少参数 'completion'的参数,为什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26411883/

10-10 22:36