使用选择器的覆盖方法具有不兼容的类型 - Swift

时间:2014-10-04 04:52:47

标签: ios swift

覆盖UITableViewDelegate的{​​{1}}导致以下编译错误:

  

使用选择器'tableView:cellForRowAtIndexPath:'具有不兼容类型'的覆盖方法(UITableView!,NSIndexPath!) - >的UITableViewCell!

覆盖功能的当前实现是:

tableView:cellForRowAtIndexPath:

导致错误的原因是什么?如何修复?

2 个答案:

答案 0 :(得分:5)

删除implicit optional type。签入UITableViewDataSource tableViewindexPath没有可选项。同时在执行override时删除protocol您不需要编写override

的方法

替换为以下方法

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
    //the error is on the line oboe... Overriding method with selector 'tableView:cellforRowAtIndexPath:'has incompatible type '(TableView, NSIndexpath) -. UITableViewCell!'
{
    let cell = tableView.dequeueReusableCellWithIdentifier("cellIdent", forIndexPath: indexPath) as UITableViewCell

    // Configure the cell...

    return cell
}

答案 1 :(得分:-1)

试试这个:

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

这可能会有所帮助: Overriding method with selector '***' has incompatible type '****' parse