如何在swift中访问函数外部的变量

时间:2014-10-11 17:03:13

标签: function variables swift

我试图在我的函数getVariables之外访问inputAC和inputB,我似乎无法使它工作。

以下是我正在使用的代码,但它目前有效。

func getVariables () {
        var inputAC = textFieldAC.text.toInt()
        var inputB = textFieldB.text.toInt()

    }

    var ac = inputAC
    var b = inputB

有人有什么想法吗?

由于

3 个答案:

答案 0 :(得分:9)

您需要从函数返回值。这是通过在元组中返回它们来实现它的一种方法:

func getVariables () -> (Int?, Int?) {
    var inputAC = textFieldAC.text.toInt()
    var inputB = textFieldB.text.toInt()
    return (inputAC, inputB)
}

var (ac, b) = getVariables()

// Since the values are optionals, you can use optional binding to
// safely unwrap the value.
if let acval = ac {
    println("ac value is \(acval)")
} else {
    println("alas, ac was nil")
}

答案 1 :(得分:1)

getVariables方法中的这些变量无法在此方法之外访问,因为这些是方法局部变量。访问它们的范围仅适用于该方法。 如果要访问它们,请在类....中将它们声明为属性或实例变量。

答案 2 :(得分:1)

我建议你在课堂上实例化这些变量。如果swift与java没有那么不同,你可以将它们声明为类变量并在方法中设置它们。然后,在方法之外,您可以使用

访问它们

(这是java代码,我很抱歉,但我试着给你一般的想法)

在课堂上你应该做这样的事情:

Int ac; int b;

在方法中执行以下操作:

this.setInputAc(inputAc);
this.setInputB(inputAc);

外面你应该做这样的事情:

ac = this.getInputAc();  
b = this.getInputB();

另外,为每个变量声明你的setter和getter

只是为了给你一般的想法。