UITableView无法从其dataSource获取单元格

时间:2019-01-18 02:18:33

标签: ios swift uitableview

我知道在这个问题上有很多问题,但是到目前为止,没有一个答案对我有帮助。

我更新了我的xcode,突然出现了很多错误,因此我点击浏览并执行了通常对我有用的自动修复程序,但是这一次他们以某种方式破坏了我的代码。在更新之前,它一直运行良好。以下代码出现了问题:

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

    let cell = tableView.dequeueReusableCell(withIdentifier: "coinCell", for: indexPath as IndexPath) as! GreekTableViewCell

    let cellPop = greekCoinArray[indexPath.section][indexPath.row]

    cell.coinTitle.text = cellPop.title
    cell.tombstone.text = cellPop.tombstone
    cell.coinImage.image = UIImage(named: cellPop.obverse)
    cell.tombstone.numberOfLines = 0

    return cell
}

对任何人都明显有什么问题吗?我收到错误消息:

  

“-[UITableView _configureCellForDisplay:forIndexPath:]中的断言失败” ...“由于未捕获的异常'NSInternalInconsistencyException',正在终止应用程序,原因:'UITableView'...”无法从其dataSource(<_UIFilteredDataSource :”

2 个答案:

答案 0 :(得分:-1)

您是否已将cellIndentifier = "coinCell"设置为情节提要。

您可以从下面的屏幕截图中获取参考。

enter image description here

答案 1 :(得分:-1)

我认为是因为您无法使可重复使用的单元出队。

  1. 首先,检查是否已在情节提要中添加了单元格的reuseIdentifier
  2. 如果您将自定义XIB文件用作单元格,或者未使用Xcode模板,则必须使用以下代码注册该单元格

    self.tableView.register(UINib(nibName: "CellName", bundle: nil),
                                forCellReuseIdentifier: "coinCell")
    
  3. 确保您没有忘记实现UITableViewDelegate和UITableViewDataSource协议。例如:

    class viewController: UIViewController, UITableViewDelegate, UITableViewDataSource
    
  4. 此外,使用UITableView的最新数据源和委托方法