在某些View Controller中,我具有以下命令:

    //Looks for single or multiple taps.
    let tap: UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(LoginVC.dismissKeyboard))


    //add tap gesture
    view.addGestureRecognizer(tap)


但是在将语言从swift3更改为swift4之后,我开始收到以下错误

[iosapp_v147.ChangePasswordViewController dismissKeyboard]:无法识别的选择器已发送到实例0x155e04090

任何提供的帮助将不胜感激

最佳答案

错误消息表明接收到ChangePasswordViewController调用的目标对象(a dismissKeyboard)没有声明为@objc dismissKeyboard()的函数

确保ChangePasswordViewController具有使用dismissKeyboard属性声明的@objc函数。这是所有#selector引用所必需的。

您还应该能够声明不带"LoginVC."前缀的选择器,因为您的目标是self。

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


最后,确保功能签名没有标签(dismissKeyboard(this:that:))。

如果这些都不是,请发布函数声明。

关于ios - dismissKeyboard-无法识别的选择器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55457487/

10-11 22:46