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
- Swift中的?与!区别分析
- Swift之" ?与! "区别
- Oc与swift区别
- Swift语法中的“ ?” 和 ”!“区别
- Swift源码分析----swift-proxy与swift-account(1)
- Swift源码分析----swift-proxy与swift-account(2)
- Swift源码分析----swift-proxy与swift-container
- Swift源码分析----swift-proxy与swift-object(1)
- Swift源码分析----swift-proxy与swift-object(2)
- Swift之!与?的区别
- swift class与struct 区别
- Swift与OC的区别
- Swift中的willSet与didSet
- Swift中的willSet与didSet
- Swift中的willSet与didSet
- Swift中的willSet与didSet
- Swift中的willSet与didSet
- Swift中的willSet与didSet
- 51单片机中断学习
- java对象的强引用,软引用,弱引用和虚引用
- 修改div的透明度
- 活动(activity)的四种启动模式
- 在javascript中取页面中的值
- Swift中的?与!区别分析
- [XenServer] 修改默认安装XenServer系统盘(4G)大小
- FM hal层的一些接口
- CodeForces 614 A. Link/Cut Tree(水~)
- java.lang.IndexOutOfBoundsException: setSpan (26 ... 26) ends beyond length 10
- 单片机寄存器
- BZOJ 3910: 火车|LCA|并查集
- 4281: [ONTAK2015]Związek Harcerstwa Bajtockiego 倍增LCA
- HBase超详细介绍