Cocoa 核心数据:实例化一个";“根对象”;在基于文档的应用程序中
我正在使用核心数据创建一个基于文档的项目,并遇到了对我来说可能只是一个概念性问题的问题,因为虽然我对Cocoa并不陌生,但这是我第一次尝试利用核心数据。我试图完成的应该相对简单:随着每个新文档的启动,我希望创建一个作为“根”对象的模型对象的新实例 我所做的是将NSObjectController添加到我的xib中,将其模式设置为实体名称(提供正确的实体名称),勾选“准备内容”,并将其托管对象上下文绑定到文件所有者,并将managedObjectContext作为模型键路径。为了测试这一点,我将主窗口的标题绑定到对象控制器,控制器键作为选择,模型键路径作为实体中的键之一 我知道我可以通过编程方式创建我的根对象,但我正试图采用苹果推荐的中介模式。我已经在部门员工教程的“采用调解人模式”部分看到了说明,详细的步骤正是我相信我所做的 有什么想法吗 编辑: 也许我没有正确地说明这个问题。模型是在核心数据中创建的,关系是按照我的需要设置的(使用“根”、子对象和叶对象,使用对单亲关系、对多个子对象关系和isLeaf布尔属性)。我的问题是确保每次启动新文档时都将此根对象实例化为单例。根对象和当前文档之间应该有一个1:1的关系,根对象必须始终存在并且在没有任何用户交互的情况下可用,并且创建并附加到根的子节点是应用程序使用和操作的数据对象 我已经通过编程实现了上述功能,但为了符合核心数据原则,我希望完全采用中介模式,而不是在我的应用程序逻辑中管理任何数据对象的创建。如果您想要一个“根”管理对象,就像您在链表或树中找到的一样,然后您必须在数据模型本身中设置它 默认情况下,核心数据模型在对象之间没有特定的层次结构。对象可能是相关的,但没有对象在逻辑上“高于”或“低于”另一个对象。通过从任何其他对象开始,并将关系移回所需对象,可以到达任何关系中的对象 托管对象的层次结构需要类似树的结构,如下所示:Cocoa 核心数据:实例化一个";“根对象”;在基于文档的应用程序中,cocoa,core-data,nsobjectcontroller,Cocoa,Core Data,Nsobjectcontroller,我正在使用核心数据创建一个基于文档的项目,并遇到了对我来说可能只是一个概念性问题的问题,因为虽然我对Cocoa并不陌生,但这是我第一次尝试利用核心数据。我试图完成的应该相对简单:随着每个新文档的启动,我希望创建一个作为“根”对象的模型对象的新实例 我所做的是将NSObjectController添加到我的xib中,将其模式设置为实体名称(提供正确的实体名称),勾选“准备内容”,并将其托管对象上下文绑定到文件所有者,并将managedObjectContext作为模型键路径。为了测试这一点,我将主
Tree{
nodeName:string
parent<-->>Tree.children
children<<-->Tree.parent
}
树{
nodeName:string
parent>Tree.children
实际上,树层次结构确实反映了适用于此特定项目的真实世界模型。如果它适合,它适合,我只是想提醒您不要使用树结构,因为它显示在示例中,或者可能在其他API中使用。