2015-03-02 121 views
0

我正在創建一個類來管理複選框。線程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

崩潰了什麼事嗎?

感謝您的幫助!

回答

0

因爲你的行動功能需要的參數func buttonClicked(sender:UIButton)目標的行動應始終包含:在年底,因此,所有你需要做的就是這個

self.addTarget(self, action: "buttonClicked:", forControlEvents: UIControlEvents.TouchUpInside) 

而且你buttonClicked功能,可更換的附加目標線這樣簡化:

func buttonClicked(sender:UIButton){ 
    if(sender == self){ 
     isChecked = !isChecked 
    } 
} 
相關問題