为什么是可选的(“文本”) – 斯威夫特
我刚开始使用Swift。 所以我创build了一个带有标签,button和文本字段的简单应用程序。 当您点击button时,应用程序必须使用文本字段的文本更改标签。
class ViewController: UIViewController { @IBOutlet weak var textLabel: UILabel! @IBOutlet weak var textField: UITextField! @IBAction func updateButton(sender: UIButton) { textLabel.text = "Hi \(textField.text) " }
结果是
嗨可选(“TextOfTextField”)
好的。 所以这是一个非常简单的问题。
我希望有一个人可以帮助我。
textField的文本是可选值,因为文本字段有时可能为空。 所以,使用一个if let
解包variables,并确保它不是零 – 否则你的程序可能会崩溃:
if let text: String = textField.text { textLabel.text = text }
所以这里的问题是,textField的文本是一个可选的,你必须解开使用它。
只需添加一个!
到textField.text
像这样:
textLabel.text = "Hi \(textField.text!)"
你的输出现在将是Hi TextOfTextField
希望这可以帮助 :)
还有一种方法是使用Guard来检查它是否不为零。
guard let nameText = textField.text else { print("break if nil") return } textLabel.text = "Hi \(nameText!)"
如果条件失败,使用警卫确保您的应用程序提前失败。
我用Swift 3解决了这个问题;
self.label.text = "\(transaction.amount!)"
它只是一个简单的使用Swift在这里,你可以只设置1个button,当它点击我的textfeild文本设置成使用Swift 3 Lable
class ViewController: UIViewController { @IBOutlet weak var textLabel: UILabel! @IBOutlet weak var textField: UITextField! @IBAction func updateButton(sender: UIButton) { textLabel.text = "Hi \(textField.text!)" }
在标签中设置int值或文本时,尝试下面的代码来摆脱“可选”
为可选(123):
textLabel.text = NSNumber(value: yourIntValue).stringValue
为可选(“文本”):
var str = "hi " str.append(textField.text) textLabel.text = str