Swift可空链式调用
可空链式调用和可空实例绑定区别:可空链式调用允许程序员把多个查询串联为一个可空实例的值。如果链式调用中的每个可空实例都包含之,那么每个调用都会成功。整个查询链会返回期望类型的可空实例。如果查询链式中的任意可空实例是nil,那么整个链式调用会返回nil。
示例:如果遇到404错误,就用自定义错误码及展示给用户的错误描述代替
1  | var errorCodeString : String!  | 
重点在于最后一句代码!!!
这里使用errorDescription的大写形式给upcaseDescription赋值,使用了问号,为什么呢?因为errorDescription可能为nil。最后这句代码,如果errorDescription不为nil,则可以按照普通的可空实例进行强制展开使用!进行访问。但一旦为nil,就会触发运行时错误了。而用?访问时,无论errorDescription的值是否为nil都可以保证代码安全。
总结:在访问可能为nil可空实例的值的时候,用?来访问
1  | var errorDescription: String?  | 
使用?时,无论errorDescription是否为nil,最后一句代码都不会报错。只是在errorDescription为nil时,upcaseDescription也是nil。
注意:
1  | var name : String? = nil  |