Swift 3 UITableView数据源方法viewForHeaderInSection给出警告

迁移到Swift 3后,我有以下方法
func tableView(_ tableView: UITableView,viewForHeaderInSection section: Int) -> UIView? {}

它给了我警告

Instance method ‘tableView(tableView:viewForHeaderInSection:)’ nearly
matches optional requirement ‘tableView(_:titleForHeaderInSection:)’
of protocol ‘UITableViewDataSource’

Fix-it提供使方法私有或添加@“nonobjc”注释。如何解决警告?

我的应用程序中有类似的警告。实际上有两个问题。我通过将下划线添加方法签名中或通过将方法移动到实现方法来自的协议的正确扩展来修复所有警告。

我认为你的问题可能是两者的结合。

更详细地说:

1)您可能忘记在“tableView:…”之前添加“下划线”字符,这使得它在Swift 3中是不同的方法(在Swift 2.3中并不重要)。所以你应该改变这个:

func tableView(tableView: UITableView,viewForHeaderInSection section: Int) -> UIView?

到这个:

func tableView(_ tableView: UITableView,viewForHeaderInSection section: Int) -> UIView?

2)方法tableView(_:viewForHeaderInSection :)来自UITableViewDelegate协议,但是看起来编译器不知道这个方法 – 它只知道来自UITableViewDataSource的方法,并尝试建议你们之一(tableView(_ :titleForHeaderInSection :))。所以你根本不执行UITableViewDelegate,或者你也可以执行另一个扩展?

相关文章

Swift 正式开源!Swift 团队很高兴宣布 Swift 开始开源新篇章。自从苹果发布 Swfit 编程语言,就成为了...
快,快,快!动动您的小手,分享给更多朋友! 苹果去年推出了全新的编程语言Swift,试图让iOS开发更简单...
开发者(KaiFaX) 面向开发者、程序员的专业平台! 和今年年初承诺的一样,苹果贴出了Swift语言的源码,...
本文由@Chun发表于Chun Tips :http://chun.tips/blog/2014/12/11/shi-yong-swift-gou-jian-zi-ding-yi...
本文由CocoaChina译者leon(社区ID)翻译 原文:THE RIGHT WAY TO WRITE A SINGLETON 在之前的帖子里聊过...
本文由CocoaChina译者leon(社区ID)翻译 原文:THE RIGHT WAY TO WRITE A SINGLETON 在之前的帖子里聊过...