gpt4 book ai didi

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

转载 作者:IT王子 更新时间:2023-10-29 05:13:16 24 4
gpt4 key购买 nike

迁移到 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 提供将方法设为私有(private)或添加 @"nonobjc"注释。如何解决警告?

最佳答案

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

我认为您的问题可能是两者兼而有之。

更详细:

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 协议(protocol),但看起来编译器不知道这个方法——它只知道UITableViewDataSource 中的方法,并尝试向您推荐其中一种方法 (tableView(_:titleForHeaderInSection:))。因此,您要么根本不实现 UITableViewDelegate,要么实现,但可能在另一个扩展中?

关于Swift 3 UITableView 数据源方法 viewForHeaderInSection 给出警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39708652/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com