在UIButton的扩展内,我创建了一个按钮并添加了它的目标.
extension UIButton {
convenience init(target: AnyObject) {
self.init(type: .system)
self.addTarget(target, action: Selector("setLang:"), for: .touchUpInside)
}
}
在ViewController中,当使用自定义init函数创建按钮时,作为目标,我传递自我.
这在将我的代码升级到Swift 3之前工作正常.但是,现在,当点击按钮时我收到错误:
Terminating app due to uncaught exception ‘NSInvalidArgumentException’, reason: ‘-[MyApp.ViewController setLang:]: unrecognized selector sent to instance xxx
在ViewController内部,声明了以下被调用的函数:
func setLang(button: UIButton) {
//...
}
有任何想法吗?
提前致谢!
最佳答案 我从苹果开发者论坛找到了解决方案.这可能对你有所帮助.
selectionButton.addTarget(self, action: #selector(SingleQuestionViewController.selected(_:)), for: .touchUpInside)