装载的Xib总是在制成插座后立即崩溃

问题描述 投票:0回答:1

我有一个能够成功加载的xib文件:

    let xib = MyBundle.bundle.loadNibNamed("MyXib", owner: self, options: nil)!
    let confirmView = xib[0] as! MyXib

这将加载并正确显示在屏幕上。

该类在xib中正确设置,并且在代码中检入时正确转换。文件所有者的设置也正确。

但是,如果我将对象从xib文件拖到其类中(例如,设置按钮引用),则该xib加载后,应用程序将崩溃。

***由于未捕获的异常'NSUnknownKeyException'而终止应用程序,原因:[MyXib 0x7fcaf0d3eb50 setValue:forUndefinedKey:]: 类别不符合键按钮的键值编码标准。

该初始化称为:

required init?(coder: NSCoder) {
    super.init(coder: coder)
}

被称为,所以我知道它完成了初始化。

没有破损的插座或任何时髦的东西。我实际上只是拖动一个按钮并创建一个插座,然后运行。如果我删除插座,它将可以使用。如果我再次在任何插座上添加插座,则会因同一问题而崩溃。

关于其他原因的任何建议?我已经看过main causes of this

ios swift xcode bundle xib
1个回答
0
投票

我认为您不想设置笔尖的所有者。除非情况是self对象与XIB顶级对象是同一类,否则]

使用这种实例化样式会发生什么?

let nib = NSNib(nibNamed: "MyXib", bundle: nil)
var array: NSArray?
if let nib = nib {
  let result = nib.instantiate(withOwner: nil, topLevelObjects: &array)
  if result, let array = array { //first object is nominally the one you want }
    
© www.soinside.com 2019 - 2024. All rights reserved.