如何避免在Swift 4的iOS 11中使用带有刷新控件的@objc



我将我的项目从Swift 3升级到Swift 4,在迁移过程中,它在我的代码中插入了一堆"@objc"注释。我希望去掉它们以避免生成任何Objective-C入口点。其中一个我不知道如何摆脱,就是使用刷新控件。以下是违规代码:

let refreshControl = UIRefreshControl()
refreshControl.addTarget(self, action: #selector(MyController.handleRefresh(refreshControl:)), for: .valueChanged)
self.table.refreshControl = refreshControl;

问题似乎是使用了#选择器。如何在没有选择器的情况下实现刷新控制?

我想去掉它们

你不能,你需要停止想要。#selector是一个Objective-C功能,因此你必须向Objective-C显式公开操作方法。(以前你已经含蓄地暴露了它;现在你必须说出你的意思。)

您可以使用@IBAction而不是@objc两者都使用反射,但Swift4对@IBAction没有问题

相关内容

  • 没有找到相关文章

最新更新