Swift中的?与!区别分析

来源:互联网 发布:小说改编的网络剧2015 编辑:程序博客网 时间:2024/06/06 03:54

在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.给编译器提供更多线索,在编译时发现更多潜在错误。


0 0
原创粉丝点击