let myLabel:UILabel = UILabel(frame:CGRectMake(0, 0, 44, 44))
myLabel.text = "Primary"
print(myLabel.text)
结果:
可选( “第一”)
我可以打印(myLabel.text!),但这是强行取消打开Optional的好习惯吗?
答案 0 :(得分:1)
对于你的代码,没关系,因为你实际上知道你设置了一些文本。但通常你应该这样做:
if let text = myLabel.text {
print(text)
}
仅在文本存在时才打印。
答案 1 :(得分:1)
您可以使用nil-coalescing运算符
let myLabel:UILabel = UILabel(frame:CGRectMake(0, 0, 44, 44))
myLabel.text = "Primary"
print(myLabel.text ?? "")
游乐场很适合处理这些事情。
答案 2 :(得分:0)
如果您使用的是Swift 2:
func print(){
guard let text = myLabel.text else {
return
}
print(text);
}
对于Swift< 2
if let text = myLabel.text {
print(text)
}
回答你的问题:
最好检查选项是否为空。 因为如果你没有,并且它为空,你的应用程序将崩溃。 通常我会使用,如果让我们检查一下......
var userInput
func doSth(){
//do Sth
if let _ = myLabel.text {
userInput = myLabel.text
} else {
myLabel.text = "Welcome"
}
//do Sth
}
答案 3 :(得分:0)
您可以使用nil-coalescing运算符。它基本上是一种轻松返回未包装的可选项或默认值的方法。
let myLabel:UILabel = UILabel(frame:CGRectMake(0, 0, 44, 44))
myLabel.text = "Primary"
var text:String? = myLabel.text ?? nil
print("\(text)")