使用核心数据动态显示嵌套列表时遇到问题

时间:2018-12-09 04:26:31

标签: swift sorting core-data nested nsfetchedresultscontroller

以下是我要处理的问题:

  • 我正在使用iOS Core Data永久存储信息
  • 我想(动态地)在UITableView中显示存储在核心数据中的信息(如下所述)
  • 我正在考虑使用Core Data的提取结果控制器(FRC)和FRC委托,以便更有效地处理永久存储的数据和UI中的更新之间的桥梁
  
      
  • 我有一个 实体,并以 名称 作为属性。

  •   
  • 我有两个“多对多”关系,从一个指向一个    就业 实体和两个向后指向的“一对一”逆关系,这样任何人都可以拥有任意数量(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?

(我对编码还是有点新鲜,对您的帮助将不胜感激!)

0 个答案:

没有答案
相关问题