Swift 4:UITableView cellForRow崩溃

时间:2018-02-05 20:18:30

标签: ios uitableview

我无法理解我做错了什么, 我有一个名为TblView_Categorie的UITableView,我想要做的是获取所需索引路径的单元格:

这是我的代码:

let myRecordindex = IndexPath(row: myRecordcheck, section: 0)

let cell = tblViewcategorie.cellForRow(at: myRecordindex) as! categorieTVC 

pb是否显示MyRecordIndex屏幕(无需滚动)一切正常

如果屏幕上没有显示MyRecordIndex(需要滚动)我有这个错误
“线程1:致命错误:在打开可选值时意外发现nil”

如果我手动滚动到所需的索引,我输入所需的MyRecordIndex一切正常

我尝试使用下面的代码自动滚动:滚动工作但仍然是同样的错误

   self.tblViewCategorie.scrollToRow(at: myRecordindex, at: UITableViewScrollPosition.middle, animated: true)

任何人都可以帮助我,为什么我有这个错误?

我想做的就是让单元格在所需的索引路径上改变颜色,字体,..

// 更新cellForRowAt实施

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

    let cell = tableView.dequeueReusableCell(withIdentifier: "Cell") as! categorieTVC
    if let categorieName = self.fetchedResultsController.object(at: indexPath).categorieName{
        cell.setListeDesCategories(categorieName: categorieName)
    }
    return cell
}

//更新代码和崩溃屏幕截图

Crash and code

1 个答案:

答案 0 :(得分:1)

您无法明确取消

 let cell = TblView_Categorie.cellForRow(at: MyRecordIndex) as! CategorieTVC 

作为单元格我不可见所以它将是nil - >碰撞

 let cell = TblView_Categorie.cellForRow(at: MyRecordIndex) as? CategorieTVC 

 if(cell != nil)
 {

 }

编辑:滚动到单元格并在cellForRow

之后调度
let myRecordindex = IndexPath(row: myRecordcheck, section: 0)

self.tblViewCategorie.scrollToRow(at: myRecordindex, at: UITableViewScrollPosition.middle, animated: true)

DispatchQueue.main.asyncAfter(deadline: .now() + 1.0 )) {

 let cell = TblView_Categorie.cellForRow(at: MyRecordIndex) as? CategorieTVC 

 if(cell != nil)
 {

 }
}