【发布时间】:2016-09-26 11:11:40
【问题描述】:
在我们的 Swift 3 迁移之后发生了一些非常奇怪的事情。
我们有两个视图控制器,它们都实现了UITableViewDelegate,它们都实现了public func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath)
但是只有其中一个调用了实际的方法。
如果我将不起作用的 public func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) 更改为 public func tableView(_ tableView: UITableView, didSelectRowAtIndexPath: IndexPath)(注意 Swift 2.2 签名),那么它们都可以工作。
两个视图控制器都是 Swift 类,所以我不确定到底发生了什么。 我很确定这可能是 Objective-C 与 Swift 的互操作性问题,但我们的整个项目都是用 Swift 编写的,所以很难弄清楚是什么原因造成的。
感谢任何帮助。 谢谢。
【问题讨论】:
-
你是如何将
didSelectRowAtIndexPath放入 Swift 3 的?它在 Swift 3 中被删除。你只能使用didSelectRowAt? -
它的声明就像在 Swift 2.2 中一样,并且编译得很好。
-
我在一些 collectionView 委托函数中遇到了类似的问题。虽然一切都很好,但他们没有工作。在注释掉非工作函数并通过 XCode 自动完成再次添加函数后,它工作得很好 - 只是提到两个函数之间没有拼写错误.....我只是将我的代码从旧函数复制并粘贴到新的,瞧……也许有帮助
标签: ios uitableview swift3 xcode8