2010-04-19 99 views
5

OK,所以我的數據模型中有兩個實體(比如entityA和entityB),這兩個實體之間都有一對多的關係。如何處理與NSFetchedResultsController的多對多關係?

我已經設置了一個NSFetchedResultsController來獲取一堆entityA。現在我試圖讓tableview的部分名稱成爲entityB的標題。

sectionNameKeyPath:@"entityB.title" 

現在,這會導致一個問題,當從這種關係中返回的部分名稱似乎是({} TITLE1)或({TITLE1,標題2 ... titleN})顯然取決於有多少不同的entityB的是參與其中。這在tableview中看起來不太好,並且不會按照我的意願對對象進行分組。

我想要的是每個entityB標題的一個部分,entityA出現在每個部分的下面,如果需要的話在多個部分下。我不知道該如何實現這一點,無論我是否需要更新謂詞以使實體出現多次,或者是否需要更新節和標題函數以在控制器循環遍歷對象。

任何幫助表示讚賞:)

感謝

回答

5

你會得到,因爲呼叫@「entityB.title」將返回一個數組|設爲標題。這就是你所看到的,因爲它翻譯成:

NSSet *titles = [myEntityA [email protected]"entityB.title"]; 

要解決這個問題,你需要扭轉你NSFetchedResultsController讓你獲取EntityA通過 EntityB對象的對象。然後你的sectionKeyPath(和你的主要排序)將僅僅是@「title」。

+0

我不知道你如何讓NSFetchedResultsController通過EntityB對象獲取EntityA對象,但我只是獲取EntityB對象並使用UITableViewDataSource方法從NSFetchedResultsController獲取EntityA。它最終沒有像我原先想象的那麼糟糕。 – hanleyp 2010-06-20 04:14:16

+1

試圖自己做這個。菲爾或馬庫斯,你能詳細解釋一下如何做到這一點?在stackoverflow和谷歌遍地搜索,沒有太多的運氣。我很感激任何幫助。 – SAHM 2011-02-15 17:32:09

+0

@JPK:打開一個新的問題來描述你的確切問題,然後我可以對它進行闡述。 – 2011-02-15 23:12:52

相關問題