是的,有好几篇关于这个问题的文章,但是没有一篇能回答我的问题?
我在nib文件中创建了一个自定义视图,并将其连接到代码,如下所示:
Link
只有不同之处:
我的类名为EditorSectionView而不是CustomView
我的分店名是customView,不是contentView
除了代码外,我还做了以下工作,如要点所述:
在界面生成器中,单击“文件所有者”,将文件所有者的自定义类设置为“EditorSectionView”,而不是视图本身
通过辅助编辑器将顶级视图(界面生成器中名为“自定义视图”的项)拖放到EditorSectionView,以创建名为customView的出口。
每当我启动应用程序并单击应该使用此自定义视图的按钮时,它就会崩溃,并出现错误:
“此类不符合密钥customView的密钥值编码”。
但是,当我查看连接检查器时,在我的nib文件中没有“!”就像其他一些帖子指出的,一切似乎都很好。
我正在使用这样的nib文件来实例化它:

form +++ Section(field.name) {
   let header = HeaderFooterView<EditorSectionView>(.nibFile(name: "EditorSectionView", bundle: nil))
}

这应该在Eureka中创建一个新的窗体部分,如这里所描述的:https://github.com/xmartlabs/Eureka/blob/master/README.md(搜索),您可以使用.XB文件中的自定义视图:“在自述文件中)。
我已经试着解决这个问题一个小时了,但我不知道还能做什么。所有的连接都是设置好的(outlet,UI的类),代码本身是从gist中复制的,等等。
我在这里做错什么了?
谢谢。
编辑:
如果我在“标识检查器”中将自定义类设置为EditorSectionView,则不仅文件的所有者自定义类设置为EditorSectionView,它不会再因“不符合密钥XY的编码”而崩溃,而是在调用loadNibNamed()的行上因EXC_BAD_ACCESS而崩溃。
我发现答案是,我不应该为顶级视图设置自定义类,这将再次导致“不符合编码”。所以不管怎样还是不行。。。

最佳答案

如果不在Xcode检查器中看到您的连接,很难说清楚,但有时如果您连接一个出口,然后在代码中重命名它,则该出口仍与旧名称连接,并且您会遇到一个键值符合性问题
要查找的位置在“标识/检查器的用户定义属性表”中。。
swift - 此类不是与键值编码兼容的Swift-LMLPHP
还要检查你的连接检查器

关于swift - 此类不是与键值编码兼容的Swift,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40822853/

10-10 20:30