可选链接返回Int

时间:2014-11-11 17:44:06

标签: ios swift optional optional-chaining

以下是我如何返回表格视图的行数:

public func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    if let dataCount = self.data?.count {
        return dataCount
    } else {
        return 0
    }
}

但是,我想使用可选链接使其更简洁......但编译器对我的代码并不满意。我试试这个:

return self.data?.count

它抱怨计数属于Int类型?我应该强行打开它,所以我这样做:

return self.data?.count!

并且它抱怨count是Int类型。使用可选链接,如果数据不是nil,它应该只得到计数,如果数组不是nil,那么我知道count将返回ok。

我错过了什么?感谢

1 个答案:

答案 0 :(得分:7)

这是范围问题:

return (self.data?.count)!

或者使用可选链接

return self.data?.count ?? 0

如果self.datanil则评估为零,而第一个解决方案将抛出一个 那种情况下的运行时异常。