线程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 
    } 
}