在SWIFT 4中,我如何处理@objc推断反对#selector()?

在SWIFT 4中,我如何处理@objc推断反对#selector()?

我正在尝试将我的项目的源代码从SWIFT 3转换到SWIFT 4。Xcode给我的一个警告是关于我的选择器。

例如,我使用常规选择器将目标添加到按钮中,如下所示:

button.addTarget(self, action: #selector(self.myAction), for: .touchUpInside)

这就是它所显示的警告:

‘#selector’的参数是指在‘ViewController’中依赖于‘@objc’属性推断的实例方法‘myAction()’,在SWIFT 4中不推荐使用该方法。

添加@objc以将此实例方法公开给Object-C

现在,打Fix在错误消息中,对我的函数执行以下操作:

// beforefunc myAction() { /* ... */ }// after@objc func myAction() { /* ... */ }

我不想将所有函数重命名为包含@objc马克和我认为这是不必要的。

如何重写选择器以处理不推荐项?


有关问题:


慕侠2389804
浏览 612回答 1
1回答

Qyouu

到目前为止,我认为SWIFT 4.2所需要做的就是将@IBAction分配给您的方法,这样您就可以避免使用这个愚蠢的@objc注释了。```let tap  =  UITapGestureRecognizer(target: self, action: #selector(self.cancel))@IBAction func cancel(){     self.dismiss(animated: true, completion: nil)}
打开App,查看更多内容
随时随地看视频慕课网APP