2011-04-14 152 views
0

我有一個名爲Project的實體,另一個實體名爲Employee。員工在多個項目上工作。創建具有多對多關係的NSFetchedResultsController管理實體

Project實體有project name

Employee實體有First name,last name,departmentid number

我希望數據在節頭表顯示這樣

項目1
DEPT1
-firstname1,lastname1
-firstname2,lastname2
部門2
FIRSTNAME3,lastname3
firstname4,lastname4
Project 2
Dept1
-firstname1,lastname1

我該怎麼做?我不必顯示部門名稱,但必須按這種方式排序。

我正在使用核心數據& UITableView。我需要爲此構建NSFetchResultsController

+0

部分頭部示例應該被格式化爲大綱還是您打算將它全部劃分爲一行。 – TechZen 2011-04-14 18:57:56

回答

0

我認爲你的問題的根源在於,當你從關係的對象(即:Project-> Employees - 產生一個NSSet的僱員)。 NSSets當然是無序的。

答案是這樣的:

你需要手工你的員工NSSets排序。我建議你將NSSet轉換爲NSMutableArray,然後使用-sortUsingBlock:或者沿着這些行來做。爲了避免在每次需要時重新排序,請將其存儲爲Project類的成員變量。這樣做時,應該很容易地創建它,並且只在數據集更改時對其重新排序,這對性能會更好。

你可能會對Core Data中的子查詢做些什麼......但我認爲你可能會發現它會比你想要的更頻繁地碰到磁盤。 (只是猜測那裏)我上面提到的技術有點不那麼神奇,有點蠻力,但它會起作用,並且你會確切知道它是如何表現的。

0

使用fetchedResultsController獲取您的'項目'實體,您將能夠通過它們的關係在您的tableview數據源方法中訪問並顯示 NSSet。

相關問題