textField.text
はオプションですが、なぜlabel.text = textField.text
行が機能するのか混乱しています。上記のコードは正常に動作しますが、なぜ、あまりにもlabel.text = textField.text
細かい作業を行いケーススウィフトオプションをアンラップする必要はありませんか?
if let text2 = textField.text {
label.text = text2
}
:として一般的に私はそれを書くだろうか?私はそれがオプションのラップを解除する必要があると思った? if let
の構文を使用する必要があります。いつ行う必要がありますか?
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var label: UILabel!
@IBOutlet weak var textField: UITextField!
override func viewDidLoad() {
super.viewDidLoad()
label.text = ""
}
@IBAction func setTextButtonTapped(_ sender: Any) {
label.text = textField.text
}
@IBAction func clearTextButtonTapped(_ sender: Any) {
textField.text = ""
label.text = ""
}
}
あなたは、オプションにオプションを割り当てることができます。オプションではないオプションに代入することはできますが、オプションではなく非オプションに代入することはできません。 3番目のケースは、アンラップする必要がある場合です。 – vacawama