0

我对 Core Data 有一个概念上的问题。

我有一个名为 OBJ 的实体,它在关系中有一个 OBJ 实体。"An error occured."当我测试我的模型时,我会收到非常有说服力的信息。

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

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

ENTITY OBJ
Attributes:
name    
status
Relationships:
actions
<-------- >>

ENTITY ACTION    
Attributes:
name   
Relationships:
obj

好吧,它不起作用,因为 OBJ 总是引用它自己。因此,我已经解耦了关系。ACTION 指向一个 OBJ,而 OBJ 指向几个 ACTION,没有互惠性。错误信息。

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

如何将其构建为 MVC 一致?基本的想法似乎很简单,只是他的成就不那么简单。这是一个错误的核心数据建模吗?我在控制器级别犯了错误吗?界面?请注意,在这个级别上,我没有编写任何代码。

谢谢!

4

2 回答 2

1

如果你想

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

这意味着一个 OBJ 可以有多个 ACTION,一个 ACTION 可以有多个 OBJ。

因此,您应该在两个方向上定义 ACTION 和 OBJ 之间的关系。

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

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

于 2012-09-20T13:00:47.833 回答
0

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

OBJ                           ACTION
…                             …
Relationships                 Relationships
targetObject     <------->>   actions
conditionObject  <------->>   condition

如果我不这样做,反向关系总是指同一个(自我)对象。所以,通过改变关系,我改变了对象本身!

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

每一天,我都更好地理解“Core Data 不适合初学者”是什么意思……</p>

于 2012-09-22T10:58:12.043 回答