我有一个fatal error: unexpectedly found nil while unwrapping an Optional value
for an IBOutlet
.
在我的自定义视图中,我已将我的插座与XIB
文件。我已经仔细检查过这一点。它是这样的:
@IBOutlet weak var label: UILabel! {
didSet {
label.textColor = .redColor()
}
}
我的实施layoutSubviews
好像:
override func layoutSubviews() {
super.layoutSubviews()
label.preferredMaxLayoutWidth = label.frame.size.width
}
尽管事实如此,layoutSubviews
必须在 UI 元素初始化后调用方法,我收到错误:
fatal error: unexpectedly found nil while unwrapping an Optional value
此错误由以下行触发:
label.preferredMaxLayoutWidth = label.frame.size.width
为什么会这样?如何修复它?
你应该使用:
label?.preferredMaxLayoutWidth = label.frame.size.width
在layoutSubviews的早期调用之前,插座尚未设置,但在下一次调用中将会设置。使用可选链接,您可以避免显式可选展开。如果 label 为零,则自动跳过分配。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)