我有一张桌子,想把它设置为nil
,这样我就可以使用它来改变它的文字了,现在没有,它显示“可选”文字!
@IBOutlet var nameLable: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
@IBAction func helloworldaction(nameTextField: UITextField) {
nameLable.text = "\(nameTextField.text)"
}
但是当我将其更改为此时显示错误:
@IBOutlet var nameLable: UILabel = nil
我该怎么办?
答案 0 :(得分:1)
您不希望自己的标签为零。你只想让它的文字为空。
@IBOutlet var nameLable: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
// SET THIS
nameLable.text = ""
}
@IBAction func helloworldaction(nameTextField: UITextField) {
// And use nameTextField.text directly
nameLable.text = nameTextField.text
}
答案 1 :(得分:1)
这里的问题只是"\(nameTextField.text)"
- 您正在使用字符串插值"\(X)"
,它可以方便地打印值而无需使用格式化程序,但是您要分配一个值 - 这是你在这做什么 - 你只需使用nameTextField.text
然后您可以打开选项 - 正如@Marina向您展示的那样 - 如果字段为零,您也可以清除标签
if let text = nameTextField.text
{
nameLable.text = text
}
else
{
nameLable.text = ""
}
也许值得花一些精力拼写正确的东西。如果您知道标签拼写方式相同,那么跟踪问题要容易得多: - )
答案 2 :(得分:0)
您应该打开一个可选值nameTextField.text。它看起来像:
if let text = nameTextField.text{
nameLable.text = text
}
答案 3 :(得分:0)
我想你可以这样做:
nameLable.text = "\(nameTextField.text!)"
但强行打开包装不是一个好选择。您可以创建一个变量来存储文本值。然后在nameLable.text中引用该字符串,而不是直接从标签开始。