【发布时间】:2019-02-27 20:42:52
【问题描述】:
当我运行应用程序并按下按钮时,它会导致崩溃“线程 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 也做了同样的事情
【问题讨论】:
-
实际上,您应该立即在
init?(coder中获得(毫无意义的)fatalError。很可能按钮的类未设置为 Interface Builder 中的子类。 -
FML,就是这样。我没有让 MyButton 成为界面生成器上的自定义类。