代码涉及indexPath& NSIndexPath工作 - 但为什么它是多余的?

时间:2016-10-17 02:03:59

标签: swift uitableview nsindexpath

我回到使用CloudKit,在我重新访问的项目中,我进行了一次查询获取,并留下了一系列CKRecords。我将此数组设置为通过TableController显示。无论如何,我有这一行代码(有效)...但我不确定为什么我将indexPath设置为NSIndexPath。

 override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: "dining") as! table1cell
    let restaurant: CKRecord = categories[(indexPath as NSIndexPath).row]
    cell.Name.text = restaurant.value(forKey: "Name") as? String

    return cell

使用我的其他非CKRecord TableController项目,我知道我不必将indexPath设置为自身,实质上。我在这里错过了什么?

2 个答案:

答案 0 :(得分:2)

使用强制转换为NSIndexPath毫无意义。只需将行更改为:

let restaurant: CKRecord = categories[indexPath.row]

答案 1 :(得分:0)

如果indexPath未存储在显式类型的var中,您可能会将其转换为避免编译器消息。如果编译器不知道indexPath的类型为NSIndexPath,则访问.row属性可能会导致错误。

你在哪里声明/存储indexPath?删除as NSIndexPath强制转换后会发生什么?

编辑:重新阅读你的问题,我相信答案是:

“您没有将indexPath存储为自身,您正在将存储在indexPath中的任何内容转换为NSIndexPath类型”