我有一个文本字段,我希望它在按下按钮时隐藏和显示,我还希望文本字段中的文本传递到文本字段下方的标签。我试过这个:
@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>
请有人帮助我。
答案 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 ?? ""
}