【问题标题】:Core Data InterMediate Entity核心数据中间实体
【发布时间】:2011-11-06 18:03:31
【问题描述】:
有3个实体
- 父亲---->姓名
- 儿子---->姓名
- 父子---->身份证
关系
- 父亲--->>父亲儿子
- 儿子--->儿子父亲
- 父子-->父---->>父子,子---->子父
我使用中间表来保存父子之间的关系。父子之间没有直接的关系。
现在,
我可以将父子关系保存到父子实体中。
- 我的主要问题是使用父子关系从 Son 实体访问 Son 名称。
- 使用父子关系从父实体访问父名。
所有信息都显示在tableview中。
当我在表格视图中选择父亲姓名时。 didselect 事件必须进入详细信息视图
并显示与父亲相关且与儿子相同的儿子名称列表。
【问题讨论】:
标签:
iphone
core-data
entity
【解决方案1】:
我不确定我是否 100% 理解您的问题,但这里是。 . .
在核心数据方面,我假设你有类似的东西:
- 父亲是一个实体,其属性名为
fatherSons
- FatherSon 是一个实体,具有一个名为“儿子”的属性和一个名为“父亲”的属性
- Son 是一个具有名为“fatherSon”的属性的实体
所以,从一个到另一个应该很简单:
// We start with a father
Father *father = <get the father from core data>
// Get a set of all the sons that father ]has
NSSet *sons = father.fatherSons;
// Output each son and his father
for (Son *son in sons)
NSLog(@"%@ has father %@", son, son.fatherSon.father);
所以在你的表格视图中你会使用
son.fatherSon.father
显示特定儿子的父亲和
father.fatherSons
获取指定父亲的所有儿子的列表
只是出于兴趣。 . .
为什么你必须使用中间表——当然应该是
Father has many Sons
Son has one Father
(好吧,从技术上讲,我应该有 Child 而不是 Son,但是嘿,我不知道你的应用是什么!)