如何安全地解包textField.text并将其安全地存储在属性中?

时间:2016-12-25 01:08:46

标签: swift optional

我有6个文本字段,我希望按下按钮连接成一个字符串(按顺序),然​​后获取该字符串并将其转换为Int。 我知道如何将字符串转换为Int。

我一直坚持的是如何在IBOutlets下创建一个可选的属性,然后将可选的unwrapped textfield.text存储到属性中?

我试过的是

@IBOutlet weak var firstTextField: UITextField!

这是IBOutlet

var firstTextFieldString: String?

这是属性

然后在我说的函数中

func functionName(textField: UITextField) {
    if textField == firstTextField {
      if let text = textField.text {
        firstTextFieldString = text
  }
 }
}

1 个答案:

答案 0 :(得分:1)

UITextField的{​​{1}}属性是可选字符串(String?),可以分配给任何其他类型相同的变量。看起来你的出口和财产是正确的。

您应该能够将text属性直接分配给firstTextFieldString属性。

firstTextFieldString = firstTextField.text

如果您希望在按下按钮时调用某个功能,可以使用@IBAction标记该功能并将其连接到故事板中。

@IBAction func functionName(textField: UITextField) {
    // your function here
}

如果您将所有文本字段作为出口引用,则应该能够编写一个直接访问每个字段的text属性并将它们组合在一起的函数。当文本字段没有值时,它完全取决于您想要的内容。如果要将它们视为空字符串,可以在将它们连接在一起之前用默认值解包它们。

@IBAction func functionName(textField: UITextField) {
    let first = firstTextField.text ?? ""
    let second = secondTextField.text ?? ""
    let third = thirdTextField.text ?? ""
    // etc...
    let result = first + second + third + ...
    // etc...
}