2014-10-11 51 views
0

我试图访问inputAC和inputB我的功能getVariables之外,我似乎无法得到它的工作。如何访问变量的函数外迅速

这里是我一起工作的代码,但它目前的工作。

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

    } 

    var ac = inputAC 
    var b = inputB 

任何人有什么想法?

感谢

+0

这难道不是因为他们是局部变量? – 2014-10-11 17:05:05

+3

SO是不是真正的编程课程的基础知识。我的意思是说这种方式并不令人反感,但也许你应该更好地阅读一本书或者做一门课程等等。 – 2014-10-11 17:09:35

+0

我正在上一门课程,但我还没有太先进。我试图找到这个问题的直接答案,但我找不到一个。我将在未来努力坚持更高级的问题。 – thedude 2014-10-11 17:35:17

回答

6

你需要从函数返回值。下面是一个元组返回他们做这件事:

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

这些变量这是在getVariables方法不能是这种方法的外部访问,因为这些方法的局部变量。访问它们的范围仅限于该方法。 如果你想访问他们宣布他们在课堂上的财产或实例变量....

1

我建议你比如在班级这个变量。如果swift与java差别不大,可以将它们声明为类变量并将它们设置为您的方法。然后,你的方法外,你可以通过访问他们

(这是java代码,我很抱歉,但我尽量给你的总体思路)

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

Int ac; int b; 

在该方法中做这样的事情:

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

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

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

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

只给你的总体思路。