Transient sectionNameKeyKey&NSSortDescriptor NSFetchedResultsController
我有一个核心数据内的任务列表。 我使用NSFetchedResultsController将它们提取到UITableView中。
我需要自定义顺序中的自定义部分:
要确定一个任务应该进入哪个部分,我使用基于相对对象中其他属性即时计算的派生瞬态属性。
不幸的是,您无法将派生值作为提取请求使用的排序描述符进行传递。 这是因为取回依赖于已经有数据被要求取回。 鸡蛋。
我明白为什么我不能这样做,这并不能帮助我解决问题!
我试过了:
将NSFetchedResultsController子类化为'自定义节和索引标题的创建'。 也许我做错了,但这只是改变了部分的名字和顺序,并没有改变那些部分的内容(这很关键)。
每个部分填充数组并将它们送入桌子(笨重,缓慢但完全有效)。
剔除正在进行的和推迟的任务(这是可行的,但并不理想)。 这样我可以通过dueDate进行排序,并通过瞬态值驱动sectionNameKeyPath。
有没有人有更好的想法? 这个问题已经有很多问题了,但没有一个能够得到一个完美的解决方案。
提前致谢!
干杯
最简单的解决方案是添加一个持久的'section'属性(或者转换你现有的transient属性)。 使它成为一组可排序的值(在运行时使用您想要的名称显示)。 无论何时更新任何记录,重新计算并存储节属性。
我意识到这听起来像是在存储冗余信息,但除了使您的逻辑更简单之外,它也将是可索引的,这将加速访问。
链接地址: http://www.djcxy.com/p/6135.html上一篇: Transient sectionNameKeyPath & NSSortDescriptor NSFetchedResultsController