以下是我要处理的问题:
我有一个 人 实体,并以 名称 作为属性。
我有两个“多对多”关系,从一个人指向一个 就业 实体和两个向后指向的“一对一”逆关系,这样任何人都可以拥有任意数量(0到∞)的雇主和任意数量的员工,同时:
employee <—>> employmentTaken
employer <—>> employmentGiven
每个就业都有一个 rank (整数)属性,用于显示人员的雇主-如果有的话-按照由该人的每个 Employment 所产生的相对收入所定义的顺序排列给用户(每个收入水平随时可能发生变化)时间)。
为使程序跟踪UITableView中显示的人员,每个 Employment 还附带一个 show (布尔值)属性,其中 true =显示在表上,而 false =不显示在表上。
我想在UITableView中列出人,这样当用户按下 Person 时,UITableView中在 Person下引入了许多行的名称是显示“个人”雇主所必需的,因此递归地进行(因为任何 Person 都可能是 Employer 和< em> Employee ),最终视图是嵌套列表。
示例如下:
初始UI状态:
人员1的名称
人员2的名称
人名3
...
用户按下用户2时的UI状态,假定人员2同时为人员4、5和6工作:
人员1的名称
人员2的名称
________ 4号人员的姓名 * //按2号人员规模划分的第一收入来源*
________ 人员姓名5 * //按人员人数2划分的第二收入来源*
________ 6号人员的姓名 * //按2号人员规模划分的第三收入来源*
人名3
我当前正在使用NSFetchedResultsController,获取所有具有 show = true 的职位,并尝试使用两个键对它们进行排序:
let rank = NSSortDescriptor(key: #keyPath(Employment.rank), ascending: true)
let employee = NSSortDescriptor(key: #keyPath(Employment.employee), ascending: true)
(在单元格中显示人员的姓名,我使用点表示法:employment.employer?.name
)
使用这些键的顺序不是所希望的,我试图弄清楚是否可以使用sortDescriptor
和FRC进行正确的排序。
我应该完全使用FRC,还是只创建一个数组数组并编写一些额外的代码来亲自更新UI?
(我对编码还是有点新鲜,对您的帮助将不胜感激!)