2011-06-12 134 views
1

我的Core Data有问题。问题发生在这种情况下:核心数据:对象图问题

-I have two entities, for instance "Department" and "Employee". 
-A to-many relationship from "Department" to "Employee" 

当我生成模型时,会生成两个类:“Department”和“Employee”。 “部门”类有一个“NSSet”员工感谢对多关系。

在代码中,我创建了两个“部门”(d1,d2)和一个“员工”(e1)的实例。 我希望e1实例可以在d1和d2中(通过关系)。所以我做类似的事情:

[d1 addEmployeeObject:e1 ]; 
[d2 addEmployeeObject:e1 ]; 

问题是,当我重新启动应用程序时,e1不再在d1中(仅在d2中)。看来核心数据会自动从d1中删除e1。但我不想那样!

根据核心数据documentation,它似乎是合适的行为(请阅读上述链接中的操作关系和对象图完整性章节)。

我该如何防止这种行为?任何想法 ?

感谢您的阅读, 真的很希望我已经清楚。

回答

2

创建一个称为Departments的反向关系,一个To-many从Employee到Department。

将“部门”的相反标记为“员工”,其中“员工”是部门之间的多对多关系。

当您生成类时,您应该看到该部门有一个NSSet *员工,员工有一个NSSet *部门。

+0

是的,这就是我为什么工作的原因。事实上,这是解决方案;)Thansk;) – ayorosmage 2011-06-14 06:32:01