我对Core Data存在概念性问题。
我有一个名为OBJ的实体,它在关系中有一个OBJ实体。当我测试我的模型时,我得到了非常有说服力的消息,例如"An error occured."
。
对于每个OBJ实体,我希望定义一个或多个与另一个OBJ实体关联的ACTION。所以我猜我的错误来自循环,但不确定。
首先,我定义了一个反向关系(正如doc所建议的那样,关系应该总是有反向关系):
ENTITY OBJ
Attributes:
name
status
Relationships:
actions
<-------- >>
ENTITY ACTION
Attributes:
name
Relationships:
obj
嗯,它不起作用,因为OBJ总是指自己。因此我脱离了关系。 ACTION指向OBJ,OBJ指向几个ACTION,没有互惠。错误信息。
我的基本想法是,如果另一个OBJ的状态允许,每个与特定OBJ关联的ACTION都可以运行。
如何构建这个MVC一致?基本的想法似乎很简单,这是他的成就。这是一个错误的核心数据建模?我在控制器级别犯了错误吗?接口?请注意,在这个级别我没有写一行代码。
谢谢!
答案 0 :(得分:1)
如果你想
定义与另一个OBJ相关联的一个或多个ACTIONS
这意味着一个OBJ可以有很多ACTIONS,一个ACTION可以有很多OBJ。
因此,您应该在两个方向上定义ACTION和OBJ之间的关系。
OBJ.actions <<-------->> ACTION.obj
除非您打算拥有&#34;子对象&#34; (例如CATEGORY和subCATEGORY)你不应该在OBJ和OBJ之间建立关系。
答案 1 :(得分:0)
我通过在“OBJ”和“ACTION”之间添加新关系找到了解决方案。
OBJ ACTION
… …
Relationships Relationships
targetObject <------->> actions
conditionObject <------->> condition
如果不这样做,则反向关系总是指相同的(自身)对象。所以,通过改变关系,我正在改变对象本身!
通过添加新的一对多关系,我可以间接地创建OBJ到OBJ关系(targetObject和conditionObject可以是同一个)并保持图形一致。
每一天,我都更清楚“核心数据不适合初学者”是指......