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

Gad*_*air 0 ios uirefreshcontrol swift4 ios11

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

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

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

mat*_*att 5

我希望摆脱他们

你不能,你需要停止想要.#selector Objective-C功能,因此您必须将操作方法​​显式公开给Objective-C.(以前你已经暗中暴露过它;现在你必须说出你的意思.)