在某些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
任何提供的帮助将不胜感激
答案 0 :(得分:1)
错误消息表明接收到ChangePasswordViewController
调用的目标对象(dismissKeyboard
)没有声明为@objc dismissKeyboard()
的函数
确保ChangePasswordViewController
具有一个dismissKeyboard
属性声明的@objc
函数。所有#selector
参考都是必需的。
由于目标是self,因此您还应该能够声明不带"LoginVC."
前缀的选择器。
let tap: UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(dismissKeyboard))
最后,确保功能签名没有标签(dismissKeyboard(this:that:)
)。
如果这些都不是,请发布函数声明。