使用 loadNibNamed 时崩溃

Posted

技术标签:

【中文标题】使用 loadNibNamed 时崩溃【英文标题】:Crash when using loadNibNamed 【发布时间】:2020-12-18 21:38:41 【问题描述】:

这是我的代码:

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”)。 但由于某种原因它失败了: 我已经尝试了 *** 中的所有解决方案,但没有任何帮助。 这是我的xib文件: 我真的不知道该怎么办。 我正在使用 Xcode 12 beta 6、ios 14 beta 6 更新 好吧,很多人在教程的cmets中说

这会导致调用 commonInit() 的无限循环。

所以现在我知道问题出在哪里,但我仍然不知道如何解决它。有什么想法吗?

【问题讨论】:

视图的类型是什么?我敢打赌你也将它设置为iconView。请注意,only 所有者应为iconView。视图本身应该只是 UIView(或 UIImageView 或您使用的任何视图类型)。 【参考方案1】:

您可能必须从视图中删除 Class。

首先选择您的View(在您的情况下为iconView):

然后清除 class 字段中的所有内容:

【讨论】:

谢谢。在我这样做之后,我的插座出现了错误,但幸运的是我知道如何修复它,现在一切正常。再次感谢您!

以上是关于使用 loadNibNamed 时崩溃的主要内容,如果未能解决你的问题,请参考以下文章

越狱设备 [UIDeviceRGBColor superview] 上 loadNibNamed 时可能崩溃:无法识别的选择器

loadNibNamed(_:owner:options:) 崩溃

当我将 setContentSize 与自动布局一起使用时,UIScrollView 崩溃

使用 loadNibNamed: 方法时是不是需要释放 IBOutlets?

使用 loadNibNamed 加载视图时,如何在 UIView 上调用便利初始化程序?

是啥导致 [[NSBundle mainBundle] loadNibNamed 中的 BUS_ADRALN?