Dan*_*SDE 0 string optional ios optional-values swift
我刚开始使用Swift.所以我创建了一个带有标签,按钮和文本字段的简单应用程序.单击该按钮时,应用程序必须使用文本字段的文本更改标签.
class ViewController: UIViewController {
@IBOutlet weak var textLabel: UILabel!
@IBOutlet weak var textField: UITextField!
@IBAction func updateButton(sender: UIButton) {
textLabel.text = "Hi \(textField.text) "
}
Run Code Online (Sandbox Code Playgroud)
结果是
嗨可选("TextOfTextField")
好的.所以这是一个非常简单的问题.
我希望有一个人可以帮助我.
Elm*_*Cat 13
textField的文本是可选值,因为文本字段有时可能为空.因此,使用an if let来解包变量并确保它不是零 - 否则你的程序可能会崩溃:
if let text: String = textField.text {
textLabel.text = text
}
Run Code Online (Sandbox Code Playgroud)
Lin*_*rth 10
所以这里的问题是textField的文本是可选的,你必须打开才能使用它.
只需添加一个!到textField.text这样的:
textLabel.text = "Hi \(textField.text!)"
Run Code Online (Sandbox Code Playgroud)
你的输出现在是 Hi TextOfTextField
您有一些更安全的选项来打开您的选项:
nil coalescing operator:??
这将使用textField.text,或者,如果没有,则使用提供的其他值,"?"在这种情况下
textLabel.text = "Hi \(textField.text ?? "?")"
Run Code Online (Sandbox Code Playgroud)if let声明:
请注意,这只会更新文本字段的文本,如果它不是nil.你可以提供一个else声明来处理这个问题.
if let text = textField.text {
textField.text = "Hi \(text)"
}
Run Code Online (Sandbox Code Playgroud)guard let声明:除了你的函数将在语句后结束时,
它的工作方式与if let语句类似.
guard let text = textField.text else { return }
textField.text = "Hi \(text)"
Run Code Online (Sandbox Code Playgroud)希望这可以帮助 :)
| 归档时间: |
|
| 查看次数: |
11175 次 |
| 最近记录: |