我试图从UITextfield获取一个值,并将其作为可选项返回。我已经尝试了强制展开的建议方法,我仍然接受可选(" WhateverUserInputHere")而不是' WhateverUserInputHere'。我一直在寻找一种方法来确保在检索值之前文本字段不为空,以防止在强制解包时崩溃。截至目前,在用户点击按钮移动到下一个屏幕后检索该值,并且仅当用户开始编辑文本字段时才启用此按钮。但是,如果他们决定删除文本字段中的所有内容,他们仍然可以继续前进。有什么办法可以防止这个/确定按钮只有在用户输入完成并且文本字段不为空后才会启用吗?
// Variable used to store value from textfield
var nametemp:String?
var name:String = ""
@IBOutlet weak var NameInput: UITextField!
@IBOutlet weak var NextButton: UIButton!
@IBOutlet weak var TestLabel: UILabel!
// Enables button when textfield has been edited
@IBAction func NameInputEditingDidChange(_ sender: Any) {
NextButton.isEnabled = true
}
// When button is used, value of textfield is retrieved
@IBAction func NextButtonVariableTest(_ sender: Any) {
nametemp = String(describing: NameInput.text)
name = nametemp!
// Label returns optional value
TestLabel.text = "Hello" + name
}
}
答案 0 :(得分:2)
只需使用
self.name = NameInput.text!
或
self.name = NameInput.text ?? ""
使用String(describing:)
后,Optional(...)
文字将成为字符串的一部分而不是可选字符串,您将无法将其删除。