【发布时间】:2017-01-02 14:55:43
【问题描述】:
我已经看到了,这是一个常见问题,但我自己找不到任何解决方案。
代码如下:
class ButtonViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
view.addSubview(button)
}
func exmp(sender: UIButton) {
print("hello world")
}
let button: UIButton = {
let but = UIButton(frame: CGRect(x: 33, y: 33, width: 33, height: 33))
but.setTitle("-", for: .normal)
but.titleLabel?.textColor = UIColor.white
but.layer.cornerRadius = 10
but.backgroundColor = UIColor.red
but.addTarget(ButtonViewController.self, action: #selector(ButtonViewController.exmp(sender:)), for: .touchDown)
return but
}
}
问题: 红色按钮出现,但是当我点击它时,我得到“无法识别的选择器发送到类”错误。
任何帮助表示赞赏!谢谢。
【问题讨论】:
-
在
func exmp(sender: UIButton)之前添加@objc -
这应该可以工作但是.addTarget(ButtonViewController.self, action: #selector(exmp:), for: .touchDown)
-
似乎您可以在界面构建器中定义此按钮(并在需要时隐藏它,如果需要)
-
使用完整的错误消息更新您的问题。您遗漏了“无法识别的选择器”消息的重要部分。
-
@NSDmitry 添加 '@objc' 也不起作用。对我来说是
Command failed due to signal: Segmentation fault: 11。谢谢。