简单的核心数据应用程序无法读取核心数据模型键

Posted

技术标签:

【中文标题】简单的核心数据应用程序无法读取核心数据模型键【英文标题】:Simple Core Data application not able to read core data model keys 【发布时间】:2012-01-06 21:17:41 【问题描述】:

我正在尝试编写一个非常简单的 Core Data OS X 应用程序。

这是我到目前为止所做的:

    创建一个名为PortalMan 的新Core Data 应用程序。这也创建了一个名为 PortalManAppDelegateNSAppDelegate。 转到PortalMan.xcdatamodeld 数据模型并创建一个名为Repo 的新实体,它具有三个属性:activebranchpathactive 是布尔值,另外两个是字符串。 打开MainMenu.xib的界面编辑器 将新的NSArrayController 拖到文档空间 在NSArrayController 的“属性”选项卡上,将“模式”设置为“实体名称”,并将“实体名称”属性设置为“回购” 选中“准备内容”框 在NSArrayController 的绑定选项卡上,选择托管对象上下文绑定。启用它,并将其绑定到“Portal Man App Delegate”。 将“模型键路径”设置为“managedObjectContext”。 将表格视图拖到窗口中 添加一列,在其“Value”绑定中,设置“Bind To: Array Controller”,将“Controller Key”设置为“arrangedObjects”,将“Model Key Path”设置为“branch”

我还添加了一个按钮并将其绑定到数组控制器的add 方法。

当我尝试运行我的应用程序时,我收到此错误:

2012-01-06 16:01:43.650 PortalMan[656:707] An uncaught exception was raised
2012-01-06 16:01:43.651 PortalMan[656:707] [<NSApplication 0x100401750> valueForUndefinedKey:]: this class is not key value coding-compliant for the key branch.

这让我觉得它没有适当地抓取我的核心数据“回购”模型,因为“回购”确实有一个“分支”属性。

对此有什么想法或如何调试它?

谢谢!

【问题讨论】:

再次阅读错误信息:repo 可能有分支属性,但应用程序对象没有。您试图获取应用程序对象的分支,而不是 Repo,这就是它失败的原因。 【参考方案1】:

我在某些时候不小心选择了“内容数组”绑定。

我删除了该绑定,一切都按我预期的那样完美运行。

谢谢!希望这对其他人有帮助。如果您遇到这样的问题:查看您的 NSArrayController 上的所有绑定!

【讨论】:

以上是关于简单的核心数据应用程序无法读取核心数据模型键的主要内容,如果未能解决你的问题,请参考以下文章

从核心数据读取时获取属性名称和值

核心数据 - 与目标规范共享模型?

保存核心数据?

具有自定义核心数据模型的部分名称键路径

核心数据:无法获取 managedObjectContext 和模型

如何为简单的应用程序设置核心数据模型?