2011-08-30 124 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 

(當然,技術上我有孩子,而不是兒子,但嘿,我不知道你的程序是什麼! )