'UITableView'无法从其dataSource获取单元格

时间:2016-09-19 20:44:40

标签: database swift xcode swift3

我更新了Xcode,从那以后我遇到了数据库的问题。 代码:

override func numberOfSections(in tableView: UITableView) -> Int {
    // return the number of sections
    return 1
}

override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int
{
    // return the number of rows
    return leadItems.count
}

func cellForRow(at indexPath: IndexPath) -> UITableViewCell?
{
    let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath) as! LeadsTableViewCell

    // Configure the cell...
    cell.user_name_label.text = leadItems[indexPath.row].user_name
    cell.school_name_label.text = leadItems[indexPath.row].school_name

    return cell
}

我得到的错误是:

  

由于未捕获的异常'NSInternalInconsistencyException'而终止应用程序,原因:'UITableView(; layer =; contentOffset:{0,-64}; contentSize:{375,65802}>)无法从其dataSource获取单元格( )

3 个答案:

答案 0 :(得分:1)

将此添加到您的viewDidLoad方法:

tableView.register(LeadsTableViewCell.self, forCellReuseIdentifier: "Cell")

这假设您的故事板中的tableView中没有原型单元格。如果您有原型单元格,请确保重用标识符为"Cell",单元格的自定义类为LeadsTableViewCell;那么就没有必要注册单元格了。

更新

我刚注意到你的方法名称错了,应该是:

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

    let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath) as! LeadsTableViewCell

    // Configure the cell...
    cell.user_name_label.text = leadItems[indexPath.row].user_name
    cell.school_name_label.text = leadItems[indexPath.row].school_name

    return cell
}

答案 1 :(得分:1)

您的cellForRow方法名称不正确。

替换此行

func cellForRow(at indexPath: IndexPath) -> UITableViewCell?
{

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

答案 2 :(得分:0)

为了获取表视图的单元格,必须实现数据源方法,该方法旨在为索引路径的给定行提供表格视图。这种方法是:

tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath)

由于此方法是必需的方法,因此您不能将其遗漏,否则您将收到错误消息。使用此方法配置您的单元格。