首页 > 解决方案 > 获取请求后对CoreData实体进行排序的任何方式?

问题描述

我发现对 FetchedRequest 进行排序的唯一方法是使用 NSSortDescriptor 在获取时完成。但是,我想实现不同类型的排序(例如,按名称、按数量增加、按数量减少),该怎么做?比较我需要排序并决定的每个获取的项目属性,其中一个应该在列表中上升还是下降?

标签: swiftcore-data

解决方案


我发现了如何做到这一点,这实际上很容易

@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

推荐阅读