代码:
class HeaderView: UIView {
@IBOutlet weak var titleLabel: UILabel!
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
finishInit()
}
func finishInit() {
titleLabel.backgroundColor = UIColor.white
}
func setView(withTitle title: String?) {
titleLabel.backgroundColor = UIColor.white
titleLabel.text = title
}
崩溃:
在finishInit()方法中,设置标签背景颜色
fatal error: unexpectedly found nil while unwrapping an Optional value
但同样,在setView()方法上,并没有崩溃。
答案 0 :(得分:4)
当init
方法运行并返回时,尚未建立出口连接。因此,出口仍为nil
,并且在使用时会崩溃。
您应该可以通过在titleLabel
之后添加问号(?)来对此进行测试,从而将其视为可选项。
titleLabel?.backgroundColor = UIColor.white
然后你不会崩溃,但如果标签仍为零,那么该行当然也不会做任何事情。
所以你需要稍后调用使用这些出口的代码(你似乎在使用setView
吗?
您可以使用awakeFromNib
来设置出口。