ios – 用于不同ViewController的选择器

在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)  
点赞