此类不符合键值编码的swift

Posted

技术标签:

【中文标题】此类不符合键值编码的swift【英文标题】:This class is not key value coding-compliant swift 【发布时间】:2016-11-26 20:32:31 【问题描述】:

是的,有几篇关于这个问题的帖子,但似乎都没有回答我的问题?

我在 nib 文件中创建了一个自定义视图并将其连接到代码,就像这里一样:

Link

只有区别:

    我的课程名为 EditorSectionView 而不是 CustomView 我的插座名称是 customView,而不是 contentView

除了代码,我做了以下,如要点中所述:

    在 Interface-Builder 中,单击“File's Owner”并将文件所有者的自定义类设为“EditorSectionView”,而不是 View 本身 通过辅助编辑器将顶层视图(Interface Builder 中的“自定义视图”命名项)拖放到 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(在自述文件中搜索“您可以使用 .xib 文件中的自定义视图:”)。

我已经尝试了一个小时来解决这个问题,但我不知道还能做什么。所有连接都已设置(插座、UI 的类)、从 gist 复制的代码本身等。

我在这里做错了什么?

谢谢。

编辑:

如果我将身份检查器中的自定义类也设置为 EditorSectionView,不仅将 File's Owner 自定义类设置为 EditorSectionView,它不会再因“不符合键 XY 的编码”而崩溃,但它会因 EXC_BAD_ACCESS 开启而崩溃我正在调用 loadNibNamed() 的那一行。

我找到了here 的答案,我不应该为顶层视图设置自定义类,这将再次导致“不符合编码”。所以无论哪种方式它仍然不起作用......

【问题讨论】:

【参考方案1】:

如果不查看 Xcode 检查器中的连接是很难判断的,但有时如果您连接一个插座,然后在您的代码中重命名它,该插座仍然与旧名称连接,并且您获得键值合规性问题

查看的地方在“您的身份/检查员的用户定义属性表..

同时检查你的连接检查器

【讨论】:

嗯,谢谢你的回答,但这并没有真正的帮助。昨天我在chat.***.com/rooms/15942/nschat 上进行了长时间的讨论,你所描述的一切都不合适。建立插座连接后我没有重命名任何东西,连接检查器中没有显示错误,正如我在帖子中所写的那样,等等。有什么不同的想法吗?我只是简单地制作一个 nib 文件并想将它连接到代码! 好吧,现在我的代码不会因为“不符合编码”而崩溃,而是在我调用 loadNibNamed() 的那一行出现 EXC_BAD_ACCESS... 你能从控制台分享 EXC_BAD_ACCESS 回溯吗?如果不能,你能分享你的项目吗?

以上是关于此类不符合键值编码的swift的主要内容,如果未能解决你的问题,请参考以下文章

此类不符合 @IBInspectable 的键值编码

iOS 崩溃:“此类不符合键 url 的键值编码”

UITableViewCell错误:此类不符合键值编码[重复]

iOS 此类不符合键标签的键值编码

Swift 4 错误:[<UIViewController 0x7ff66ec0ef30> setValue:forUndefinedKey:]:此类不符合键 emailField 的键值

对于使用 RestKit v0.20.0 的键 Text,此类不符合键值编码