2012-06-11 26 views
0

我有一個問題排序與CoreData「加入」實體。 我做了這樣一個模型: enter image description here核心數據加入實體進行排序

邏輯是這樣的:實體A有一個項目列表。用戶可以從A中選擇一個或多個項目並將它們放入實體C.這可以正常工作。但結果集變成未排序(邏輯)。所以,我已經實現了一個「加入」實體B是這樣的:

enter image description here

所以,現在的結果可以通過在實體B領域的日期是怎樣的一個「加入」實體A和B之間進行排序

但是在這裏我感到困惑。當我向B中插入新項目時,是否還需要將它們添加到C和A中,或者它們是否與關係自動插入?

編輯 - 解決方案: enter image description here

回答

1

當你調用的CoreData產生addXXXItemsObject方法中的一種,或者設置一個關係屬性類似b.c = myCInstance;,會爲你設置恰好一個關係。

所以你可以用許多不同的方式設置你的B對象。首先成立了c <--> b關係:

b.c = instanceOfC; 
// or 
[c addBItemsObject:b]; 

然後是b <--> a關係:

b.a = instanceOfA; 
// or 
[a addBItemsObject:b]; 

最簡單的可能只是用於每個第一個版本:

b.c = instanceOfC; 
    b.a = instanceOfA; 

而且,尋找在你的截圖中,看起來你需要將你的關係的一些末端作爲對象。

編輯:編輯約5次,使其更加同心。

+0

好的,謝謝你。但我還有一個擔憂:直到現在,我已經從A那裏獲得了C的所有項目:[C. allObjects]。但我現在怎麼做? –

+0

任何人都可以幫助我嗎? –

+0

只需抓住所有B項,迭代時可以通過'b.c'獲取相應的C。 –