iOS   发布时间:2022-05-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了iphone – Transient sectionNameKeyPath和NSSortDescriptor NSFetchedResultsController大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

我有核心数据中的任务列表。我使用NSFetchedResultsController将它们读入UITableView。 我需要自定义的订单部分: > OVERDUE >活动 > ONGOING > POSTPONED >已完成 要确定任务应该进行什么部分,我使用基于相对对象中的其他属性的即时计算的派生瞬态属性。 不幸的是,您不能将派生值作为读取请求使用的排序描述符传递。这是因为提取依赖于已经有要求
我有核心数据中的任务列表。我使用NSFetchedResultsController将它们读入UITableView。

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

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

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

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

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

我试过了

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

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

提前致谢!

干杯

解决方法

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

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

大佬总结

以上是大佬教程为你收集整理的iphone – Transient sectionNameKeyPath和NSSortDescriptor NSFetchedResultsController全部内容,希望文章能够帮你解决iphone – Transient sectionNameKeyPath和NSSortDescriptor NSFetchedResultsController所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。