我是 Swift 新手。我不明白为什么这段代码:
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 { }
}
关于Swift:SKAction.runBlock -> 调用中缺少参数 'completion' 的参数,但为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26411883/