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 |