我有一个名为Project
的实体和另一个名为Employee
的实体。员工从事多个项目。
Project
实体有project name
。
Employee
实体有First name
,last name
,departmentid number
。
我希望数据显示在部分标题表中,如此
项目1
DEPT1
-firstname1,lastname1
-firstname2,lastname2
部门2 firstname3,lastname3
firstname4,lastname4
项目2
DEPT1
-firstname1,lastname1
我该怎么做?我不必显示部门名称,但必须按此方式进行排序。
我正在使用Core Data& UITableView
。我需要为此构建NSFetchResultsController
。
答案 0 :(得分:0)
我认为你的问题的根源是这样一个事实:当你从关系的 对象访问它时,一个多对多的关系会产生一个NSSet(即:Project-> Employees - 导致NSSet的员工)。 NSSets当然是无序的。
答案是:
您需要手动对员工NSSets进行排序。我建议你将NSSet转换为NSMutableArray,然后使用-sortUsingBlock:或沿着这些行的东西来做。为了避免在每次需要时对其进行重新排序,请将其存储为Project类的成员变量。这样做,懒得创建它应该很容易,并且只在数据集发生变化时重新排序,这对性能会更好。
你可能能够在核心数据中使用子查询做些什么...但我认为你可能会发现它会比你想要的更频繁地击中磁盘。 (只是猜测那里)我上面提到的技术有点不那么神奇,有点蛮力,但它会起作用,你会确切地知道它是如何表现的。
答案 1 :(得分:0)
使用fetchedResultsController获取“项目”实体,您将能够通过它们的关系访问和显示tableview数据源方法中的Employee
NSSet。