Objective-C method ':' provided by method ' ' conflicts with optional requirement method ' ' in protocol

时间:2016-04-07 10:47:53

标签: ios swift

I have the following code func tableView(tableView: UITableView, didDeselectRowAtIndexPath indexPath: NSIndexPath) -> [Int] and I want to return an array of Int from that method, but I am getting this error

Objective-C method 'tableView:didDeselectRowAtIndexPath:' provided by method 'tableView(:didDeselectRowAtIndexPath:)' conflicts with optional requirement method 'tableView(:didDeselectRowAtIndexPath:)' in protocol 'UITableViewDelegate'

I have tried putting an exclamation mark after Int like so -> [Int]! but it didn't fix the error. What am I doing wrong here? Thanks.

1 个答案:

答案 0 :(得分:0)

您的类似乎实现了UITableViewDelegate。接口UITableViewDelegate没有tableView的返回值:didDeselectRowAtIndexPath:并且由于您的方法定义了返回类型,因此存在冲突。

如果删除返回值,那么在你的情况下[Int],它应该可以工作。 您不能使用相同的签名定义多个方法,但具有不同的返回值。签名(方法名称+参数)必须是唯一的,因此您可以定义具有相同名称和不同参数的方法,但不能定义具有相同名称/参数和不同返回类型的方法。