如何在Swift中的函数外部的函数中使用变量声明?

时间:2016-12-09 02:42:46

标签: ios swift function variables

我是编程新手,无法了解如何从我在swift中创建的函数中获取可变数据。我尝试返回变量但是我在编译器中遇到错误。

    class ViewController: UIViewController {


    @IBOutlet var textField: UITextField!

    var userName = String()

    @IBAction func returnPressed(_ sender: Any) {

        userName = textField.text! //user input will = userName
        print("return pressed inside textfield")
        print("User name set to \(userName)")

    self.view.endEditing(true) //hides keyboard
        return (userName)
    }

通过按下返回按钮激活该功能。然后,变量userName将等于文本字段中的用户输入。

问题是在这个函数之外,我不能再调用变量userName并接收先前存储的用户输入值。 我似乎无法让“回归”像我一直在阅读那样工作。

2 个答案:

答案 0 :(得分:0)

函数的return语句没有做任何事情,因为你没有声明函数返回任何东西。

func returnPressed(_ sender : Any) -> String

这将是一个返回String的函数。

在这种情况下,您不需要return语句,因为您没有通过手动调用函数来捕获函数的结果。

如果在按Return键后在代码中的其他位置打印userName的值,变量将捕获该值,请确保在确定它无效之前尝试:)

答案 1 :(得分:0)

首先,as_list是类TensorShape([Dimension(1), Dimension(2), Dimension(3)])的内部变量,可以在每个函数中访问。您必须在某个函数中访问该变量,例如userNameViewController或您班级中的任何自定义函数。

制作任何功能并访问变量

viewDidLoad
  

如果您没有自己指定显式访问级别,则代码中的所有实体(具有一些特定的例外)都具有内部的默认访问级别。因此,在许多情况下,您无需在代码中指定显式访问级别。

详细了解Access Controls

此外,您还会从按钮的viewWillAppear返回一些不具有任何返回类型的内容。你会在那里遇到编译错误。

通常,文本字段的返回由func test() { //access here userName } 处理。请参阅here

Swift 3 中的委托方法是

IBAction