调用参数为关闭的func时出错。
这是我的代码:
func animateSwap(swap: Swap, completion: () -> () = {}) {
let spriteA = swap.cookieA.sprite!
let spriteB = swap.cookieB.sprite!
spriteA.zPosition = 100
spriteB.zPosition = 90
let Duration: NSTimeInterval = 0.3
let moveA = SKAction.moveTo(spriteB.position, duration: Duration)
spriteA.runAction(moveA, completion: completion)
let moveB = SKAction.moveTo(spriteA.position, duration: Duration)
spriteB.runAction(moveB)
}
当我像那样调用func时
scene.animateSwap(swap, completion: handleMatches()){
}
我有一个错误:
额外的论点'完成'在电话中
答案 0 :(得分:0)
completion
的结构对您而言是错误的。将第一行替换为:
func animateSwap(swap: Swap, completion: (() -> Void)?) -> () {
并将return completion!()
添加到函数的末尾。但是,这意味着您无法使用completion: nil
运行该函数,因此您还可以在返回之前检查完成是否为nil。
并像这样使用它:
scene.animateSwap(swap, completion: {
// All code here will be run on completion
handleMatches()
})