Swift 2.0 个错误
Swift 2.0 Errors
我正在尝试使用以下代码:
func redrawShape(shape: Shape, completion:() -> ()) {
for (idx, block) in shape.blocks.enumerate() {
let sprite = block.sprite!
let moveTo = pointForColumn(block.column, row: block.row)
let moveToAction: SKAction = SKAction.moveTo(moveTo, duration: 0.05)
moveToAction.timingMode = .EaseOut
sprite.runAction(moveToAction, completion: nil)
}
我在这一行遇到错误:
sprite.runAction(moveToAction, completion: nil)
错误说:
Cannot invoke 'runAction' with an argument list of type '(SKAction, completion: nil)'
我不知道如何解决这个问题。
完成处理程序不是可选的。你需要传递一些东西。你可以传递一个空的闭包:
sprite.runAction(moveToAction, completion: {})
或者,正如 matt 指出的那样,更好的方法是使用其他形式:
sprite.runAction(moveToAction)
马特的回答确实更好。
您调用了错误的方法。如果您没有完成处理程序,则不要调用 runAction(_:completion:)
。调用简单的 runAction(_:)
,像这样:
sprite.runAction(moveToAction)
换句话说,你有两个选择:
如果你没有完成处理程序,你可以调用runAction(_:)
,或者
如果您有完成处理程序,您可以调用 runAction(_:completion:)
。
但是你不能做的是调用runAction(_:completion:)
如果你没有完成处理程序 - 正如你正在尝试做的那样。
我正在尝试使用以下代码:
func redrawShape(shape: Shape, completion:() -> ()) {
for (idx, block) in shape.blocks.enumerate() {
let sprite = block.sprite!
let moveTo = pointForColumn(block.column, row: block.row)
let moveToAction: SKAction = SKAction.moveTo(moveTo, duration: 0.05)
moveToAction.timingMode = .EaseOut
sprite.runAction(moveToAction, completion: nil)
}
我在这一行遇到错误:
sprite.runAction(moveToAction, completion: nil)
错误说:
Cannot invoke 'runAction' with an argument list of type '(SKAction, completion: nil)'
我不知道如何解决这个问题。
完成处理程序不是可选的。你需要传递一些东西。你可以传递一个空的闭包:
sprite.runAction(moveToAction, completion: {})
或者,正如 matt 指出的那样,更好的方法是使用其他形式:
sprite.runAction(moveToAction)
马特的回答确实更好。
您调用了错误的方法。如果您没有完成处理程序,则不要调用 runAction(_:completion:)
。调用简单的 runAction(_:)
,像这样:
sprite.runAction(moveToAction)
换句话说,你有两个选择:
如果你没有完成处理程序,你可以调用
runAction(_:)
,或者如果您有完成处理程序,您可以调用
runAction(_:completion:)
。
但是你不能做的是调用runAction(_:completion:)
如果你没有完成处理程序 - 正如你正在尝试做的那样。