Core data 与核心数据的关系

Core data 与核心数据的关系,core-data,entity-relationship,cyclic-reference,Core Data,Entity Relationship,Cyclic Reference,我对核心数据有一个概念上的问题 我有一个名为OBJ的实体,它在关系中有一个OBJ实体。当我测试我的模型时,我得到了非常有说服力的消息,比如“发生了错误。” 对于每个OBJ实体,I​​希望定义与另一个OBJ实体关联的一个或多个操作。所以我猜我的错误来自一个循环,但不确定 首先,我定义了一个反向关系(正如文档所建议的,一个关系应该总是有它的反向): 实体对象 属性: 名称 地位 关系: 行动 > 实体行为 属性: 名称 关系: obj 嗯,它不起作用,因为OBJ总是指它自己。因此,我将关系解耦。动

我对核心数据有一个概念上的问题

我有一个名为OBJ的实体,它在关系中有一个OBJ实体。当我测试我的模型时,我得到了非常有说服力的消息,比如“发生了错误。”

对于每个OBJ实体,I​​希望定义与另一个OBJ实体关联的一个或多个操作。所以我猜我的错误来自一个循环,但不确定

首先,我定义了一个反向关系(正如文档所建议的,一个关系应该总是有它的反向):

实体对象
属性:
名称
地位
关系:
行动
>
实体行为
属性:
名称
关系:
obj
嗯,它不起作用,因为OBJ总是指它自己。因此,我将关系解耦。动作指向一个OBJ,OBJ指向几个动作,没有相互作用。错误消息

我的基本想法是,如果另一个OBJ的状态允许,与特定OBJ关联的每个操作都可以运行

如何使其与MVC保持一致?基本的想法似乎很简单,但他的成就却不那么简单。这是一个错误的核心数据建模吗?我是否在控制器级别出错?接口?请注意,在这个级别上,我没有编写一行代码

谢谢大家!

如果你想

定义与另一个OBJ关联的一个或多个操作

这意味着一个OBJ可以有多个动作,一个动作可以有多个OBJ

因此,您应该定义动作和OBJ之间的关系,这种关系在两个方向上都非常重要

OBJ.actions <<-------->> ACTION.obj
OBJ.actions.OBJ

除非您打算拥有“子对象”(例如类别和子类别),否则您不应该在OBJ和OBJ之间建立关系

我通过在“OBJ”和“ACTION”之间添加一个新的关系找到了一个解决方案

OBJ动作
…                             …
关系
目标对象>操作
条件对象>条件
如果我没有,相反的关系总是指同一个(自我)对象。所以,通过改变关系,我改变了对象本身

通过添加一个新的一对多关系,我可以间接地建立一个OBJ到OBJ的关系(targetObject和conditionObject可能是同一个),并保持图形的一致性


每天,我都能更好地理解“核心数据不适合初学者”的含义……

对象之间的关系是什么?是父母/孩子吗?好的,蒙迪,谢谢你指出我第一次怀孕的错误。我想避免OBJOBJ关系,所以我创建了动作实体。但现在我很清楚,我把动作混淆为实体(对多个关系)和动作实例(对一个关系)。现在对于绑定…我得到了以下信息:[addObserver:forKeyPath:options:context:]不受支持。键路径:当我尝试将控制器的选定值设置为操作对象时使用别名。我不太理解您的第二个问题。也许还有一个问题?好的,请关注我的“多关系控制器的核心数据”。
OBJ.actions <<-------->> ACTION.obj
OBJ                           ACTION
…                             …
Relationships                 Relationships
targetObject     <------->>   actions
conditionObject  <------->>   condition