使用 loadNibNamed 时崩溃
Crash when using loadNibNamed
这是我的代码:
override init(frame: CGRect) {
super.init(frame: frame)
commonInit()
}
required init?(coder: NSCoder) {
super.init(coder: coder)
commonInit()
}
func commonInit() {
let mainBundle = Bundle.main
mainBundle.loadNibNamed("iconView", owner: self, options: nil)
addSubview(contentView)
contentView.frame = self.bounds
contentView.autoresizingMask = [.flexibleWidth, .flexibleHeight]
}
我从我看到的 this tutorial 中的第 8 步复制了它(我只是将代码中的名称更改为我的 xib 文件:“iconView”)。
但由于某种原因它失败了:
我已经尝试了 Whosebug 中的所有解决方案,但没有任何帮助。
这是我的 xib 文件:
我真的不知道该怎么办。
我正在使用 Xcode 12 beta 6,iOS 14 beta 6
更新
好吧,很多人在教程的评论里说
This causes an infinite-loop calling commonInit().
所以现在我知道问题是什么了,但我仍然不知道如何解决它。有什么想法吗?
您可能需要从视图中删除 Class。
首先 select 你的 View
(你的情况 iconView
):
然后清除 class
字段中的任何内容:
这是我的代码:
override init(frame: CGRect) {
super.init(frame: frame)
commonInit()
}
required init?(coder: NSCoder) {
super.init(coder: coder)
commonInit()
}
func commonInit() {
let mainBundle = Bundle.main
mainBundle.loadNibNamed("iconView", owner: self, options: nil)
addSubview(contentView)
contentView.frame = self.bounds
contentView.autoresizingMask = [.flexibleWidth, .flexibleHeight]
}
我从我看到的 this tutorial 中的第 8 步复制了它(我只是将代码中的名称更改为我的 xib 文件:“iconView”)。
但由于某种原因它失败了:
This causes an infinite-loop calling commonInit().
所以现在我知道问题是什么了,但我仍然不知道如何解决它。有什么想法吗?
您可能需要从视图中删除 Class。
首先 select 你的 View
(你的情况 iconView
):
然后清除 class
字段中的任何内容: