表视图cellForRowAtIndexPath警告

时间:2016-06-22 13:52:05

标签: swift uitableview swift3

我已将代码更新为swift 3.0并在以下行中收到警告:

func tableView(_ tableView: UITableView, cellForRowAtIndexPath indexPath: IndexPath) -> UITableViewCell {

当我尝试使用@nonobjc使警告静音或使其成为私有函数时,表格不再加载。

错误如下:

  

实例方法' tableView(:cellForRowAtIndexPath :)'几乎匹配可选要求&table;(:canFocusRowAt:)'协议' UITableViewDelegate'

有谁知道导致此错误的原因以及如何解决此问题?

非常感谢!

3 个答案:

答案 0 :(得分:20)

只需将实现 UITableViewDataSource 协议的声明添加到类定义中,如下所示:

class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {}

答案 1 :(得分:5)

在swift 3.0中,数据源的签名更改为:

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell

请注意cellForRowAtIndexPath indexPath: IndexPathcellForRowAt indexPath: IndexPath

之间的区别

我正在使用新方法而没有任何警告,希望这可以解决您的问题。

干杯。

答案 2 :(得分:0)

我遇到了类似的问题,发现如果你在tableView之前删除了下划线之间的空格,那么

func tableView(_ tableView: ...

到这个

func tableView(_tableView: ...
奇怪的是警告消失了......