2

这是我如何返回表视图的行数:

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,那么我知道计数将返回 ok。

我错过了什么?谢谢

4

1 回答 1

7

这是范围的问题:

return (self.data?.count)!

或者使用可选链接

return self.data?.count ?? 0

self.data如果is ,其计算结果为零nil,而第一个解决方案在这种情况下会引发运行时异常。

于 2014-11-11T18:37:52.683 回答