在Swift的学习中发现如下问题:
var amiteLbl :UILabel?
self.amiteLbl = UILabel(frame:CGRectMake(50,100,200,40))
self.amiteLbl !.text = "I'm so sorry !"
self.view?.addSubview(self.amiteLbl)
两行为什么一个用!而一个用?
由于amiteLbl是可选变量,所以可能有值,也可能为nil。使用self.amite里一定有值,无论什么情况都调用后面的.text赋值方法。
而使用self.view?是声明此时并不确定self.view里是否有值,所以只在view有值时调用后面.addSubview方法。这样做的目的
1.让代码更加明确 2.给编译器提供更多线索,在编译时发现更多潜在错误。