我想在其声明的函数之外引用一个不可变变量

时间:2018-11-04 23:19:05

标签: swift

我是Swift的新手,我尝试在声明它的函数之外引用我的不可变变量string(0) "" string(0) "" string(19) "selected="selected"" string(0) "" string(0) ""

这是不可变变量所在的函数:

let button1 = SKLabelNode(fontNamed: "Bulky Pixels")

我希望能够访问该功能中的button1:

func runMathsProblem(){
    currentGameState = gameSate.mathSlove

    if currentGameState == gameSate.mathSlove{
        self.speed = 0
    }

    let button1 = SKLabelNode(fontNamed: "Bulky Pixels")
    button1.name = "Button1"
    button1.text = "1"
    button1.fontSize = 110
    button1.fontColor = SKColor.white
    button1.zPosition = 120
    button1.position = CGPoint(x: self.size.width * 0.3, y: self.size.height * 0.32)
    self.addChild(button1)
}

有没有办法使用我给它的名字来引用它?

我尝试研究在线方式,但是不确定是否在寻找正确的问题。

我希望这足以让你们了解我正在尝试做的事情。

2 个答案:

答案 0 :(得分:0)

在函数外部声明它,例如

var button1:SKLabelNode!

然后

button1 = SKLabelNode(fontNamed: "Bulky Pixels")

但是请注意,您必须在runMathsProblem内部发生任何事件之前调用touchesMoved或将其设为可选,例如

var button1:SKLabelNode?

答案 1 :(得分:0)

您不能那样做。局部变量是局部变量,仅存在于定义它们的范围内。如果在函数内部定义变量,则该变量仅存在于该函数内部。

如果希望该变量对同一对象中的其他函数可见,请将其设置为实例变量:

package.json