将文本字段的值传递给标签的快捷键

问题描述:

我有一个文本字段,我希望它隐藏并显示何时按下按钮,并且我还希望将文本字段中的文本传递给文本字段下方的标签。我尝试这样做:将文本字段的值传递给标签的快捷键

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

显然,hidding和显示部分工作,但该行

label.text = textfield.text 

不是。我得到这样的错误“线程1:EXC_BREAKPOINT(代码= 1,子代码= 0x10143fb50”,并在控制台中我有“致命错误:意外地发现零,同时解包可选值”

有人可以帮我请

+1

的可能的复制[什么是“致命的错误:零而展开的可选值意外地发现”呢?(https://*.com/questions/32170456/what-does-fatal-error-unexpectedly -found-NIL-而-解包-AN-可选-VALU) – Shades

根据你的错误,看来你尝试用这条线影响label.text = textfield.text从文本框的文本标签,但问题是,你的TextField.text为零。

这就是为什么你有错误意外发现零,同时展开一个可选值

您的文本字段是可选的。它可以有一个值或零。如果你试图解开一个可选的值,那么你有这种错误。 这里的解决方案是安全解开与可选可选值绑定这样的:

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") 
} 

下面是一个简单的代码,你可以尝试。无合并运营商(a ?? b)展开可选的a。如果它包含一个值,或者返回一个默认值b if a为零。

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