我刚开始使用Swift。所以我创建了一个带有标签,按钮和文本字段的简单应用程序。单击该按钮时,应用程序必须使用文本字段的文本更改标签。
class ViewController: UIViewController {
@IBOutlet weak var textLabel: UILabel!
@IBOutlet weak var textField: UITextField!
@IBAction func updateButton(sender: UIButton) {
textLabel.text = "Hi \(textField.text) "
}
结果是
Hi可选(“TextOfTextField”)
好。所以这是一个非常简单的问题。
我希望有人可以帮助我。
答案 0 :(得分:13)
textField 的文本 是一个可选值,因为文本字段有时可能为空。因此,使用if let
解包变量 和 ,确保它不是零 - 否则您的程序可能会崩溃:
if let text: String = textField.text {
textLabel.text = text
}
答案 1 :(得分:9)
所以这里的问题是textField的文本是可选的,你必须打开才能使用它。
只需将!
添加到textField.text
,就像这样:
textLabel.text = "Hi \(textField.text!)"
您的输出现在为Hi TextOfTextField
您可以使用一些更安全的选项来解开您的选项:
无合并运营商:??
这将使用textField.text
,或者,如果为零,则使用提供的其他值,在这种情况下为"?"
textLabel.text = "Hi \(textField.text ?? "?")"
if let
声明:
请注意,这只会更新文本字段的文本,如果它不是nil。您可以提供else
声明来处理。
if let text = textField.text {
textField.text = "Hi \(text)"
}
guard let
声明:
这类似于if let
语句,除了你的函数将在语句之后结束。
guard let text = textField.text else { return }
textField.text = "Hi \(text)"
希望这会有所帮助:)
答案 2 :(得分:1)
另一种方法是使用Guard检查它是否为零。
guard let nameText = textField.text else {
print("break if nil")
return
}
textLabel.text = "Hi \(nameText!)"
使用警卫可确保您的应用在条件失败时提前失败。
答案 3 :(得分:0)
就我的Swift 4.x而言,我使用以下命令将选项Int解开了?值或可选列表续:
\(topics?.count ?? 0 )
答案 4 :(得分:-1)
这只是一个简单的使用Swift你可以设置1个按钮,当它点击我的textfeild文本设置为Lable时使用 Swift 3
class ViewController: UIViewController {
@IBOutlet weak var textLabel: UILabel!
@IBOutlet weak var textField: UITextField!
@IBAction func updateButton(sender: UIButton) {
textLabel.text = "Hi \(textField.text!)"
}
答案 5 :(得分:-2)
我用 Swift 3 ;
解决了这个问题self.label.text = "\(transaction.amount!)"