Ambiguous reference to member 'tableView(_:numberOfRowsInSection:)' Why this error?

Dennis vd Eijnde picture Dennis vd Eijnde · Oct 20, 2016 · Viewed 10.1k times · Source

Here is my code in which the error appears: The error is in line 3 'if let indexpath...'

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    if segue.identifier == "show Detail" {
        if let indexPath = self.tableView.indexPathForSelectedRow {
            let taakDetail : Taak = taken[(indexPath as NSIndexPath).row]
            let controller = (segue.destination as! UINavigationController).topViewController as! DetailsViewController
            controller.selectedTaak = taakDetail
        }
    }

I can't find out what is ambiguous about this. The code to which it refers to is:

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return taken.count
}

Answer

Rob picture Rob · Oct 21, 2016

It's not finding tableView, and is therefore getting thrown off, assuming you somehow meant to reference this method (which you don't, obviously).

Note, your outlet is tableview, not tableView. Properties are case sensitive.

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    if segue.identifier == "show Detail" {
        if let indexPath = self.tableview.indexPathForSelectedRow {
            let taakDetail : Taak = taken[indexPath.row]
            let controller = (segue.destination as! UINavigationController).topViewController as! DetailsViewController
            controller.selectedTaak = taakDetail
        }
    }
}