提问者:小点点

不推荐使用Objective-C选择器的字符串文字;改用“#selector”[duplicate]


我有以下代码:

 override func viewDidLoad() {
            super.viewDidLoad()
            //Looks for single or multiple taps.
            let tap: UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: "dismissKeyboard")
            view.addGestureRecognizer(tap)
            // Do any additional setup after loading the view.
        }

func dismissKeyboard() {
    //Causes the view (or one of its embedded text fields) to resign the first responder status.
    view.endEditing(true)
}

在运行应用程序时,当错误修复工作发生另一个错误时,就会出现此错误


共3个答案

匿名用户

由于swift语言的更新,您会出现此错误,请更改您的点击选择器,以执行以下操作:

let tap = UITapGestureRecognizer(target: self, action: #selector(self.dismissKeyboard))

确保方法discuskeyboard在同一个视图控制器中,如果不是,则需要执行#selector(whateverhasthatmethod.discuskeyboard)

此外,请确保discissKeyboard方法实际存在,它应该是以下内容:

func dismissKeyboard(){
    YourInputField.endEditing(true)
}

匿名用户

    let tap: UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(self.dismissKeyboard))

匿名用户

从Swift 2.2开始,请改用以下命令:#selector(YourClass.DissKeyboard)