绑定到NSArrayController时CoreData创建关系

时间:2011-07-27 03:52:30

标签: objective-c cocoa core-data xcode4 uibuilder

设置:

CoreData Model

  • 产品实体

    • 属性“name”
    • 关系“常见”< ---> CommonData
  • CommonData Entity

    • 属性“product_id”
    • 关系“产品”< --->产品实体

查看设置:

  • 我有一个NSTableView来显示产品实体并且它绑定到NSArrayController
  • 有两个按钮“+”和“ - ”绑定到add:remove:到NSArrayController的相应操作。
  • 有一个NSObject控制器绑定到selection.common内容对象,NSTextView绑定到NSObjectController。

在Cocoa文档中,它声明在这种情况下,在分配产品实体时,Releationship Entity不会自动创建。单击“+”按钮时,我可以看到此行为。该产品已添加到NSTableView,但NSTextView显示“无上下文”。而且,如果我在代码中创建产品 common 实体,我可以看到NSTextView正确显示* product_id *。

我希望能够将按钮绑定到NSArrayController。

问题:

  • 有没有办法检测新产品实体是否已创建?
  • 通过按钮操作创建新产品实体时添加关系实体的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

在这种情况下,我认为只做add:就足够了。您应该将Add按钮链接到新的操作方法,在此操作方法中,您应该创建Product对象和CommonData对象,然后将前者的“common”设置为后者。至少那就是我本来会做的。

在任何情况下,我认为在这种情况下做一些新的CommonData对象的“检测”会有点过分。