代码:
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
}
Run Code Online (Sandbox Code Playgroud)
碰撞:
在finishInit() 方法上,同时设置标签背景颜色
fatal error: unexpectedly found nil while unwrapping an Optional value
Run Code Online (Sandbox Code Playgroud)
但同样,在 setView() 方法上,没有崩溃。
当init方法运行并返回时,尚未建立出口的连接。因此插座是静止的nil,你在使用它时会崩溃。
您应该能够通过在 之后添加一个问号 (?) 来测试这一点titleLabel,从而再次将其视为可选项。
titleLabel?.backgroundColor = UIColor.white
然后你不会崩溃,但如果标签仍然为零,当然这条线也不会做任何事情。
因此,您需要稍后调用使用插座的代码(您似乎正在使用setView?
您可以使用awakeFromNib应设置插座的位置。
| 归档时间: |
|
| 查看次数: |
1280 次 |
| 最近记录: |