【发布时间】:2015-02-20 06:05:36
【问题描述】:
好的,所以如果你必须投反对票,但我已经准备好完成一些事情,因为这让我发疯了。我有一个core data 应用程序(OS X),有一对NSTableViews(基于单元)通过NSArrayControllers 连接。我有一些自定义方法的实体类设置。我可以使用数据添加、删除、编辑和做各种事情——一切都很好。
我决定为运行总和添加一个新列,并使用@sum,正如我所看到的那样。无论我做什么,我都会不断收到错误消息。
我有一个实体“Store”和另一个实体“Item”,它们有一对多的关系。在 Item 实体中,我有一个名称和价格属性。
在主窗口上,我有两个NSArrayControllers 的NSTableView 控制器,一个用于商店,一个用于物品。 Item NSArrayController 的内容由 Store Controller 控制 - 所选项目。
我向 Item NSTableView 添加了一个新列,将其绑定到 Item Controller 并将其模型键路径设置为 @sum.price - 这会导致错误。
我可能遗漏了一些简单的东西,关于如何正确执行此操作的任何想法?
谢谢。
--[编辑]----
商店NSArrayController:
- 对象控制器
- 实体名称:商店
- ManagedObjectContext
- 绑定到主控的
ManagedObjectContext
- 绑定到主控的
项目NSArrayController:
-
对象控制器
- 实体名称:项目
-
内容集:
绑定到存储阵列控制器
控制器键:选择
模型键路径:项目
项目NSTableView:
第一列:
绑定到项目数组控制器
控制器键:排列对象
模型密钥路径:名称
第二栏:
- 类似,模型键路径:价格
新的总和列:
绑定到项目数组控制器
控制器键:排列对象
模型密钥路径:@sum.price
我收到的错误是:“实体项与键“@sum”的键值编码不兼容。”
【问题讨论】:
-
您需要清楚具体地了解绑定。例如,“
NSArrayController项目控制器的内容绑定绑定到NSArrayController存储控制器,控制器键selection,模型键路径items。新列的内容绑定绑定到项目控制器,控制器键? ??,模型密钥路径@sum.price。”或者无论实际情况如何。哪些对象的哪些绑定绑定到什么,使用什么控制器键和什么模型键路径?此外,您在错误中留下了一些信息,例如哪个类不符合 KVC。 -
@KenThomases 谢谢,请参阅编辑。
标签: objective-c cocoa core-data