iOS异常:NSUnknownKeyException:“在将xib作为所有者连接到ViewController之后,”此类不符合键值的键值“

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS异常:NSUnknownKeyException:“在将xib作为所有者连接到ViewController之后,”此类不符合键值的键值“相关的知识,希望对你有一定的参考价值。

我想用ViewController创建一个XIB。所以我使用ViewController创建了XIB(名为Test.xib),并将File的Owner自定义类设置为ViewController(名为:TestViewController)。

到现在为止还挺好。我可以在另一个视图控制器中加载xib并将其添加为子视图,如下所示:

let vc = Bundle.main.loadNibNamed(xibName, owner: self, options: nil)?.first as! UIViewController
vc.view.frame = contentView.bounds
vc.view.autoresizingMask = [.flexibleWidth, .flexibleHeight]

addChildViewController(vc)

contentView.addSubview(vc.view)

一旦我想通过在助理编辑器中拖动它来从我的ViewController中的xib创建IBOutlet,就会出现错误。

我查看了有关此错误的其他帖子,但似乎没有解释为什么在这种情况下发生这种情况,我无法使用建议的解决方案解决它。

我在“连接检查器”中看到,引用插座从StackView链接到“文件所有者”。那是对的吗?

enter image description here

答案
class YourViewClass:UIView{

       public static let nibName = "YourViewClass"
       public static let nib = YourViewClass.getNib()
       class func getNib() -> UINib {
           return UINib(nibName: YourViewClass.nibName, bundle: nil)
        }

  class func viewFromNib()-> YourViewClass {
       let nib = YourViewClass.getNib()
       return nib.instantiate(withOwner: self, options: nil).first as! YourViewClass
 }    }

以上是关于iOS异常:NSUnknownKeyException:“在将xib作为所有者连接到ViewController之后,”此类不符合键值的键值“的主要内容,如果未能解决你的问题,请参考以下文章

IOS开发的哪些异常之异常断点

java中啥情况下会发生io异常

Abp.io 异常:激活 Castle.Proxies.ProcessesServiceProxy 时引发异常

iOS开发中常见的一些异常

平板连接热点显示网络io异常怎么弄?

IO异常的处理