function - Swift - 无法通过从另一个函数捕获来引用本地函数

标签 function swift syntax-error

我正在尝试基于 Balloons.playground (苹果在 WWDC 上展示的)在 Swift 上创建一个非常简单的游戏。 Apple提供了代码:

func fireCannon(cannon: SKNode) {
    let balloon = createRandomBalloon()
    displayBalloon(balloon, cannon)
    fireBalloon(balloon, cannon)
}

let leftBalloonCannon = scene.childNodeWithName("//left_cannon")!
let left = SKAction.runBlock { fireCannon(leftBalloonCannon) }

我也这样做(我想):

func displayFruit(xPos: CGFloat) -> Void {
    let fruit = SKSpriteNode(imageNamed: "Banana")
    fruit.size = CGSize(width: 100, height: 100)
    fruit.position = CGPoint(x:xPos, y: 800)
    fruit.physicsBody = SKPhysicsBody(texture: fruit.texture, size: fruit.size)
    fruit.physicsBody?.affectedByGravity = true       
    self.addChild(fruit)
}

let start = SKAction.runBlock { displayFruit(100) }

上面的代码我放在override func didMoveToView(view: SKView)

我收到错误:无法通过从另一个函数捕获来引用本地函数

我知道有非常相同的问题,但那里的解决方案似乎对我没有帮助。 这样做的正确方法是什么? 谢谢!

最佳答案

这是一个本地函数:

override func didMoveToView(view: SKView) {
    func displayFruit() {
        // ...
    }
}

这不是本地函数:

override func didMoveToView(view: SKView) {
    // ...
}
func displayFruit() {
    // ...
}

让它看起来像第二个。

关于function - Swift - 无法通过从另一个函数捕获来引用本地函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26960266/

相关文章:

c++ - 如何将 vector 传递给函数?

c++ - swift 3 中是否有等效的 c++ shared_ptr?

java - Eclipse Java : Eclipse complains of missing curly brace in class

ember.js - 将ember应用程序升级到3.0意外 token <<

c++ - 函数重载解析

php - 检查变量是否在函数内设置 "globally"

Swift 当我使用 didSelectRowAt 时,Custom Cell 应该如何加载 tableview 数据并使其展开?

ios - 如何使用PromiseKit/Photos?

syntax-error - 将数组移位k的函数语法错误

javascript - 如何在函数中为 this.setattribute 传递参数?