ban*_*isa 2 optional ios swift optional-chaining
这是我如何返回表视图的行数:
public func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
if let dataCount = self.data?.count {
return dataCount
} else {
return 0
}
}
Run Code Online (Sandbox Code Playgroud)
但是,我想使用可选链接使其更简洁......但编译器对我的代码不满意.我试试这个:
return self.data?.count
Run Code Online (Sandbox Code Playgroud)
并且它抱怨计数是Int类型?我应该强行打开它,所以我这样做:
return self.data?.count!
Run Code Online (Sandbox Code Playgroud)
并且它抱怨count是Int类型.使用可选链接,如果数据不是nil,它应该只得到计数,如果数组不是nil,那么我知道count将返回ok.
我错过了什么?谢谢
这是范围问题:
return (self.data?.count)!
Run Code Online (Sandbox Code Playgroud)
或者可选择链接
return self.data?.count ?? 0
Run Code Online (Sandbox Code Playgroud)
如果self.data是nil,则计算结果为零,而第一种解决方案在这种情况下会抛出运行时异常.
| 归档时间: |
|
| 查看次数: |
138 次 |
| 最近记录: |