当我运行应用程序和按钮时,它导致崩溃“线程1:EXC_BAD_ACCESS(code = 2,address = 0x108656e70)
class MyButton: UIButton{
var myValue: Bool
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
myValue = true
super.init(coder: aDecoder)
}
}
class MyViewController: UIViewController{
//changed datatype from UIButton
@IBOutlet var manyButtons: [MyButton]!
@IBAction func buttonPressed(_ sender: MyButton){
//Error here "Thread 1: EXC_BAD_ACCESS(code=2, address=0x108656e70)"
print(sender.myValue)
}
}
顺便说一句,我注意到我无法像往常一样从情节提要中连接按钮(cntrl并拖动到插座)。我首先将“ manyButtons”声明为UIButton,以使我能够从故事板上连接它们。然后,后来我将数据类型更改为MyButton。我相信我对IBAction也做过
答案 0 :(得分:3)
您需要
class MyButton: UIButton{
var myValue = true
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
}
}
行
fatalError("init(coder:) has not been implemented")
可能导致未知的崩溃,所以这里不是摆放位置,因为当从IB加载方法required init?(coder aDecoder: NSCoder)
调用
这里的异常异常意味着操作无法将IB中的按钮转换为发送方当前类型,这意味着您错误地设置了类名
@IBAction func buttonPressed(_ sender: MyButton){
,并确认将(_ sender: MyButton){
更改为(_ sender: UIButton){
,然后重新运行
答案 1 :(得分:-2)
在身份检查器中选择“ MyButton”作为自定义类