简单的核心数据应用程序无法读取核心数据模型键
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 应用程序。这也创建了一个名为 PortalManAppDelegate
的 NSAppDelegate
。
转到PortalMan.xcdatamodeld
数据模型并创建一个名为Repo
的新实体,它具有三个属性:active
、branch
、path
。 active
是布尔值,另外两个是字符串。
打开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 上的所有绑定!
【讨论】:
以上是关于简单的核心数据应用程序无法读取核心数据模型键的主要内容,如果未能解决你的问题,请参考以下文章