Search code examples
iosswiftuitableviewsuperclass

Swift: Table view superclass error


I have created a slide out menu using Swift. I have done this many times before, but when I created it today, I get this error (see screenshot). It could just be a simple mistake I have made.

Here is the code, that I think is causing the problem:

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

    var cell:UITableViewCell? = tableView.dequeueReusableCellWithIdentifier("Cell")! as UITableViewCell

    if cell == nil{
        cell = UITableViewCell(style: UITableViewCellStyle.Default, reuseIdentifier: "Cell")

        cell!.backgroundColor = UIColor.clearColor()
        cell!.textLabel!.textColor = UIColor.darkTextColor()

        let selectedView:UIView = UIView(frame: CGRect(x: 0, y: 0, width: cell!.frame.size.width, height: cell!.frame.size.height))
        selectedView.backgroundColor = UIColor.blackColor().colorWithAlphaComponent(0.3)

        cell!.selectedBackgroundView = selectedView
    }

    cell!.textLabel!.text = tableData[indexPath.row]

    return cell
}

Screenshot:

enter image description here

UPDATE: I have tried removing override

enter image description here

Hope someone can help!


Solution

  • The method does not override any method of the superclass because the signature is wrong.

    The correct signature is

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

    All parameters are non-optional types.

    And use also the recommended method

    let cell = tableView.dequeueReusableCellWithIdentifier(cellIdentifier,
                                               forIndexPath: indexPath)
    

    which also returns always a non-optional type