NSCalendar? does not hava a member named "components"
你好老师,我这里编译报错:NSCalendar? does not hava a member named "components"
github挂了。。上不去
你好老师,我这里编译报错:NSCalendar? does not hava a member named "components"
github挂了。。上不去
2014-12-23
查了一下:?是这个意思吧
可选链表达式(Optional-Chaining Expression)
可选链表达式由目标表达式 + '?' 组成,形式如下:
expression?
后缀'?' 返回目标表达式的值,把它做为可选的参数传递给后续的表达式
如果某个后缀表达式包含了可选链表达式,那么它的执行过程就比较特殊: 首先先判断该可选链表达式的值,如果是 nil, 整个后缀表达式都返回 nil, 如果该可选链的值不是nil, 则正常返回该后缀表达式的值(依次执行它的各个子表达式)。在这两种情况下,该后缀表达式仍然是一个optional type(In either case, the value of the postfix expression is still of an optional type)
如果某个"后缀表达式"的"子表达式"中包含了"可选链表达式",那么只有最外层的表达式返回的才是一个optional type. 例如,在下面的例子中, 如果c 不是nil, 那么 c?.property.performAction() 这句代码在执行时,就会先获得c 的property方法,然后调用 performAction()方法。 然后对于 "c?.property.performAction()" 这个整体,它的返回值是一个optional type.
var c: SomeClass?
var result: Bool? = c?.property.performAction()
如果不使用可选链表达式,那么 上面例子的代码跟下面例子等价:
if let unwrappedC = c {
result = unwrappedC.property.performAction()
}
可选链表达式的语法
optional-chaining-expression → postfix-expression?
举报