加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

iphone – Transient sectionNameKeyPath和NSSortDescriptor NSF

发布时间:2020-12-15 01:54:31 所属栏目:百科 来源:网络整理
导读:我有核心数据中的任务列表。我使用NSFetchedResultsController将它们读入UITableView。 我需要自定义的订单部分: OVERDUE 活动 ONGOING POSTPONED 已完成 要确定任务应该进行什么部分,我使用基于相对对象中的其他属性的即时计算的派生瞬态属性。 不幸的是
我有核心数据中的任务列表。我使用NSFetchedResultsController将它们读入UITableView。

我需要自定义的订单部分:

> OVERDUE
>活动
> ONGOING
> POSTPONED
>已完成

要确定任务应该进行什么部分,我使用基于相对对象中的其他属性的即时计算的派生瞬态属性。

不幸的是,您不能将派生值作为读取请求使用的排序描述符传递。这是因为提取依赖于已经有要求提取的数据。鸡&蛋。

我明白为什么我不能这样做,这不利于我解决问题!

我试过了:

>将NSFetchedResultsController子类化为’customise creation of
sections and index titles‘。也许我这样做是错误的,但这只是改变了部分的名称和顺序,而不是在这些部分中有多少事情(这是至关重要的)。
>每个部分填充数组并将它们提供给表(笨重,
缓慢而完整的作品)。
>抛出正在进行的推迟任务(工作,但不理想)。这样我可以通过dueDate进行排序,并通过瞬态值驱动sectionNameKeyPath。

有人有什么更好的想法吗?已经有很多问题已经和这个问题一样,但是他们都没有得到一个整洁的解决方案。

提前致谢!

干杯

解决方法

最简单的解决方案是添加一个持久性的“section”属性(或转换您现有的transient属性)。使它成为一组可排序的值(您可以使用所需的名称在运行时显示)。无论何时更新任何记录,重新计算并存储section属性。

我意识到这听起来像您正在存储冗余信息,但除了使您的逻辑更简单,它也将是可索引的,这将加速访问。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读