【问题标题】:Swift 3 to 4 - Argument of '#selector' refers to instance method 'handleScreenTap(sender:)' that is not exposed to Objective-C [duplicate]Swift 3 到 4 - '#selector' 的参数是指未暴露给 Objective-C 的实例方法 'handleScreenTap(sender:)' [重复]
【发布时间】:2017-11-08 20:08:09
【问题描述】:

这是我的代码..

class LoginVC: UIViewController, UITextFieldDelegate, , Alertable {

override func viewDidLoad() {
    super.viewDidLoad()

    let tap = UITapGestureRecognizer(target: self, action: #selector(handleScreenTap(sender:)))
    self.view.addGestureRecognizer(tap)
}

这是错误:

Argument of '#selector' refers to instance method 'handleScreenTap(sender:)' that is not exposed to Objective-C

我尝试添加 @objc 来覆盖 func viewDidLoad():

@objc override func viewDidLoad() {

但同样的错误仍在继续。

我该如何解决这个问题?

【问题讨论】:

  • 不是,就是把@objc加到handleScreenTap(sender:)上。

标签: ios swift


【解决方案1】:

在选择器中的函数中添加@objc

像这样:

@objc func handleScreenTap(sender:Any) {
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-08-26
    • 2016-08-17
    • 1970-01-01
    • 2010-09-19
    • 1970-01-01
    • 2013-08-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多