[英]Swift - unwrap UILabel.text
let myLabel:UILabel = UILabel(frame:CGRectMake(0, 0, 44, 44))
myLabel.text = "Primary"
print(myLabel.text)
結果是:
可選(“第一”)
我可以執行print(myLabel.text!),但這是強制打開Optional包裝的好習慣嗎?
對於您的代碼來說沒關系,因為您實際上知道自己設置了一些文本。 但是通常您應該執行以下操作:
if let text = myLabel.text {
print(text)
}
僅當文本存在時,才會打印文本。
如果您使用的是Swift 2:
func print(){
guard let text = myLabel.text else {
return
}
print(text);
}
對於Swift <2
if let text = myLabel.text {
print(text)
}
要回答您的問題:
最好檢查可選參數是否不為null。 因為如果您不這樣做,並且它為null,則您的應用程序將崩潰。 通常我用if讓我們檢查一下...
var userInput
func doSth(){
//do Sth
if let _ = myLabel.text {
userInput = myLabel.text
} else {
myLabel.text = "Welcome"
}
//do Sth
}
您可以使用nil-coalescing運算符。 基本上,這是一種輕松返回未包裝的可選值或默認值的方法。
let myLabel:UILabel = UILabel(frame:CGRectMake(0, 0, 44, 44))
myLabel.text = "Primary"
var text:String? = myLabel.text ?? nil
print("\(text)")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.