Swift - 解开UILabel.text

时间:2015-11-19 10:45:51

标签: ios swift

   let myLabel:UILabel = UILabel(frame:CGRectMake(0, 0, 44, 44))
   myLabel.text = "Primary"                
   print(myLabel.text)

结果:

可选( “第一”)

我可以打印(myLabel.text!),但这是强行取消打开Optional的好习惯吗?

4 个答案:

答案 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 ?? "")

游乐场很适合处理这些事情。

enter image description here

答案 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)")