线程1崩溃:信号SIGABRT
问题描述:
我正在创建一个类来管理复选框。线程1崩溃:信号SIGABRT
这是我做过什么:
import UIKit
class CheckboxButton: UIButton {
//let checked = ""
//let unchecked = ""
let checked = "bubu"
let unchecked = "baba"
var isChecked:Bool = false{
didSet{
if isChecked == true {
self.setTitle(checked, forState: UIControlState.Normal)
}else{
self.setTitle(unchecked, forState: UIControlState.Normal)
}
}
}
override func awakeFromNib() {
self.titleLabel?.font = UIFont(name: "FontAwesome", size: 20)
self.addTarget(self, action: "buttonClicked", forControlEvents: UIControlEvents.TouchUpInside)
self.isChecked = false
}
func buttonClicked(sender:UIButton){
if(sender == self){
if isChecked == true {
isChecked = false
}else{
isChecked = true
}
}
}
}
一切都很好,但是当我点击按钮,应用程序只是错误Thread 1: signal SIGABRT
崩溃了什么事吗?
感谢您的帮助!
答
因为你的行动功能需要的参数func buttonClicked(sender:UIButton)
目标的行动应始终包含:
在年底,因此,所有你需要做的就是这个
self.addTarget(self, action: "buttonClicked:", forControlEvents: UIControlEvents.TouchUpInside)
而且你buttonClicked功能,可更换的附加目标线这样简化:
func buttonClicked(sender:UIButton){
if(sender == self){
isChecked = !isChecked
}
}