我回到使用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设置为自身,实质上。我在这里错过了什么?
答案 0 :(得分:2)
使用强制转换为NSIndexPath
毫无意义。只需将行更改为:
let restaurant: CKRecord = categories[indexPath.row]
答案 1 :(得分:0)
如果indexPath未存储在显式类型的var中,您可能会将其转换为避免编译器消息。如果编译器不知道indexPath的类型为NSIndexPath,则访问.row属性可能会导致错误。
你在哪里声明/存储indexPath?删除as NSIndexPath强制转换后会发生什么?
编辑:重新阅读你的问题,我相信答案是:
“您没有将indexPath存储为自身,您正在将存储在indexPath中的任何内容转换为NSIndexPath类型”