CoreData RelationShips

时间:2010-05-14 14:42:46

标签: objective-c xcode macos

工作环境:OS X 10.6.3,Xcode 3.2.1
嗨!我正在开发一个名为Rent-a-Flick的项目。该项目有两个实体:电影和客户端。在他们之间有一个多对多的关系。
我有2张桌子:一张有电影,另一张有客户。它们的内容绑定到适当的数组控制器(用于电影和客户端)。
我想添加第三个表,其中只显示租借所选电影的客户端。我还应该能够在此表中添加/删除客户端。如何在不创建重复项的情况下执行此操作?
该项目是开源的。我会在发布稳定版本后立即发布。

1 个答案:

答案 0 :(得分:0)

这个“第三个表”已隐含存在于您的核心数据多对多关系中。

当您在其中一个Core Data模型对象上调用[aMovie addClientObject:aClient]之类的方法时,其效果是向影片 - 客户端关系表添加一行。同样,如果要删除客户端,可以使用Core Data访问器方法[aMovie removeClientObject:aClient],而不是直接操作表。

如果您有Movie对象的实例,则可以通过引用该对象的clients属性来查看哪些客户端租借该电影。例如:

NSArray *rented_clients = [[aMovie.clients] allObjects];