'UITableView' failed to obtain a cell from its dataSource

前端 未结 3 481
旧时难觅i
旧时难觅i 2021-01-23 20:10

I updated Xcode and since then I\'v problems with my dataBase. code:

override func numberOfSections(in tableView: UITableView) -> Int {
    // return the numb         


        
相关标签:
3条回答
  • 2021-01-23 20:23

    Your method name for cellForRow is not correct.

    Replace this line

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

    with

    override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    
    0 讨论(0)
  • 2021-01-23 20:32

    In order to get a cell for your table view you must implement the data source method that is designed to provide the table view with a cell for a given row at an index path. This method is:

    tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath)
    

    Because this method is a required method you can not leave it out or you will get an error. Configure your cell in this method.

    0 讨论(0)
  • 2021-01-23 20:42

    Add this to your viewDidLoad method:

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

    This is assuming you don't have a prototype cell in the tableView in your storyboard. If you do have a prototype cell, ensure the Reuse Identifier is "Cell" and the custom class of the cell is LeadsTableViewCell; then there'll be no need to register the cell.

    UPDATE

    I just noticed your method name is wrong, it should be:

    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
    }
    
    0 讨论(0)
提交回复
热议问题