将文本字段的值传递给swift中的标签

时间:2017-09-23 10:49:22

标签: swift label textfield optional

我有一个文本字段,我希望它在按下按钮时隐藏和显示,我还希望文本字段中的文本传递到文本字段下方的标签。我试过这个:

 @IBAction func myfunction(_ sender: UIButton) {
    if textfield.isHidden == true{
        textfield.isHidden = false
        }else{
            label.text = textfield.text
            textfield.isHidden = true
     }
 }

显然隐藏和显示部分正在工作但行

label.text = textfield.text

不是。我得到一个像这样的错误&#34;线程1:EXC_BREAKPOINT(代码= 1,子代码= 0x10143fb50&#34;并且在控制台中我有&#34;致命错误:在展开可选值&#34时意外地发现nil; < / p>

请有人帮助我。

2 个答案:

答案 0 :(得分:0)

根据您的错误,您似乎尝试使用此行label.text = textfield.text将文本字段中的文本影响到标签,但问题是您的textfield.text为nil。

这就是为什么你在解开一个可选值时意外发现错误

您的文字字段是可选的。它可以有一个值或零。如果您尝试解包具有nil的可选值,则会出现此类错误。 这里的解决方案是使用 Optional Binding 安全地解包可选值:

if let textInput = textfield.text {
  //There is a text in your textfield so we get it and put it on the label
  label.text = textInput 
} else {
  //textfield is nil so we can't put it on the label
  print("textfield is nil")
}

答案 1 :(得分:0)

您可以尝试使用更简单的代码。 nil-coalescing运算符( a ?? b )展开可选的 a 。如果它包含值,或者如果 为零则返回默认值 b

@IBAction func myfunction(_ sender: UIButton) {
    label.text = textfield.text ?? "" 
}