我已将代码更新为swift 3.0并在以下行中收到警告:
func tableView(_ tableView: UITableView, cellForRowAtIndexPath indexPath: IndexPath) -> UITableViewCell {
当我尝试使用@nonobjc使警告静音或使其成为私有函数时,表格不再加载。
错误如下:
实例方法' tableView(:cellForRowAtIndexPath :)'几乎匹配可选要求&table;(:canFocusRowAt:)'协议' UITableViewDelegate'
有谁知道导致此错误的原因以及如何解决此问题?
非常感谢!
答案 0 :(得分:20)
只需将实现 UITableViewDataSource 协议的声明添加到类定义中,如下所示:
class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {}
答案 1 :(得分:5)
在swift 3.0中,数据源的签名更改为:
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
请注意cellForRowAtIndexPath indexPath: IndexPath
和cellForRowAt indexPath: IndexPath
我正在使用新方法而没有任何警告,希望这可以解决您的问题。
干杯。
答案 2 :(得分:0)
我遇到了类似的问题,发现如果你在tableView之前删除了下划线之间的空格,那么
func tableView(_ tableView: ...
到这个
func tableView(_tableView: ...
奇怪的是警告消失了......