2011-08-30 126 views
1

有3个实体核心数据中间实体

  1. 父亲---->名称
  2. 子---->名称
  3. FatherSon ----> ID

关系

  1. 父亲--- >> fatherson
  2. 儿子---> sonfather
  3. FatherSon - >父亲---- >> fatherson,儿子----> sonfather

我有使用中间表保存父与子之间的关系。父子之间没有直接的关系。

现在,

我能够父亲和儿子的关系保存到FatherSon实体。

  1. 我的主要问题是使用FatherSon的关系从Son实体访问Son名称。
  2. 使用FatherSon的关系从父实体访问父名。

所有的信息都显示在tableview中。

当我在tableview中选择父名称。 didselect事件必须采取详细信息查看 并显示父亲与儿子相关的儿子名称列表以及儿子相同。

回答

1

我不知道我100%理解你的问题,但在这里。 。 。

在核心数据方面,我认为你有这样的:

  • 父亲是一个叫fatherSons
  • FatherSon属性的实体是一个叫“儿子”属性的实体和属性叫做'父亲
  • 儿子在属性的实体称为‘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 

(当然,技术上我有孩子,而不是儿子,但嘿,我不知道你的程序是什么! )