我将我的项目从 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 的使用。如何在没有选择器的情况下实现刷新控件?
最佳答案
I wish to get rid of them
你不能,你需要停止想要。 #selector
是 Objective-C 的一个特性,因此您必须显式地将操作方法暴露给 Objective-C。 (以前你已经隐含地暴露了它;现在你必须说出你的意思。)
关于ios - 如何避免在带有 Swift 4 的 iOS 11 中将@objc 与刷新控件一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46626888/