Swift では型チェックが厳密なため、テキストフィールドとラベルではテキストへのアクセスの仕方が変わってきます。
(Objective-C ではどちらも.text でアクセスできました)
UITextField の text
プロパティは
var text: String!
と定義されているのに対して、UILabel の text
プロパティは、
var text: String?
と定義されています。
このため、テキストフィールドのテキストを評価するときには、
myTextField.text
で String を取り出すことができますが、テキストラベルの時には、
myLabel.text
では Optional
型で取り出されてしまいます。従ってテキストラベルのテキストを取り出す時には、
myLabel.text!
とする必要があります。ただし、ラベルは初期値が nil なので何も設定していない可能性があるときにはチェックが必要です。
テキストフィールド例:
var myField = UITextField(frame: CGRectMake(0, 0, 80, 30))
myField.text = "Wow"
switch myField.text {
case "Wow":
print(myField.text)
default:
print("Nothing")
}
テキストラベル例:
var myLabel = UILabel(frame: CGRectMake(0, 0, 80, 30))
myLabel.text = "Wow"
switch myLabel.text! {
case "Wow":
print(myLabel.text!)
default:
print("Nothing")
}