swift - 获取请求后对CoreData实体进行排序的任何方式?
问题描述
我发现对 FetchedRequest 进行排序的唯一方法是使用 NSSortDescriptor 在获取时完成。但是,我想实现不同类型的排序(例如,按名称、按数量增加、按数量减少),该怎么做?比较我需要排序并决定的每个获取的项目属性,其中一个应该在列表中上升还是下降?
解决方案
我发现了如何做到这一点,这实际上很容易
@FetchRequest(entity: Item.entity(), sortDescriptors: [
NSSortDescriptor(keyPath: \Item.serialNum, ascending: true)
])
var items: FetchedResults<Item> // fetching core data
@State var SortedItems:[Item] = [] // creating an additional array
按增加数量排序如下所示:
SortedItems = items.sorted(by: {$0.amount < $1.amount}) // giving our additional array a value of FetchRequest, but sorted by increasing amount
并按数量减少排序如下所示:
SortedItems = items.sorted(by: {$0.amount > $1.amount}) // giving our additional array a value of FetchRequest, but sorted by decreasing amount
推荐阅读
- python - 如果 B 中存在 A 的 ID,如何使 dataframeA 无
- javascript - javascript 需要 ewelink-api 不起作用?
- android - 颤振“包获取”失败并出现错误“无法读取文件 LocalFile ...”
- phalcon - 在哪里为 phalcon 4 中的自定义过滤器 css 代码创建文件?
- azure - 如何在 Azure DevOps 管道中使用 terraform 输出作为变量
- r - 你如何将两个数据框与 R 中的项目数量结合起来?
- dax - Expression.Error:找不到表的列“BackLogCount”。- PowerBI
- python - 如何使用wasd移动对象
- typescript - 从函数的返回结果中提取类型信息
- javascript - 如何使用异步?