我试图在我的函数getVariables之外访问inputAC和inputB,我似乎无法使它工作。
以下是我正在使用的代码,但它目前有效。
func getVariables () {
var inputAC = textFieldAC.text.toInt()
var inputB = textFieldB.text.toInt()
}
var ac = inputAC
var b = inputB
有人有什么想法吗?
由于
答案 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
只是为了给你一般的想法。