ios - 如何避免在带有 Swift 4 的 iOS 11 中将@objc 与刷新控件一起使用?

标签 ios ios11 swift4 uirefreshcontrol

我将我的项目从 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/

相关文章:

ios - 为什么我的 leftBarButtonItem 在 iOS 11.4 上呈现得更小

firebase - 当应用程序在后台(最小化)时,推送通知不起作用 - iOS

ios - API调用去哪个文件?

ios - 在 iOS 中查看层次结构

iOS 11 的 Refresh Controller 和 navigationBar 有 prefersLargeTitles 设置为 true 的问题

ios - 由于 RealmSwift,当 swift 3 @obj 推理设置为 "default"时,应用程序崩溃

ios - didSelect mapView 注释无法正常工作

ios - 不存在带有 CFbundleidentifier 的软件

iOS - NSTimer 导致在动画期间停止应用程序

ios - 重新排序 CollectionView 单元格 iOS 11