我有一个 func getData() 可以检索核心数据实体,我想按日期对它们进行排序。如何应用 NSPredicate 或 Predicate 从 CoreData 获取按日期排序的数据?
我的核心数据实体: 实体:费用 属性:
数量
类别
日期
函数 getData() { 让 context = appDelegate.persistentContainer.viewContext
do { expenses = try context.fetch(Expenses.fetchRequest()) } catch { print("Cannot fetch Expenses") }
最佳答案
谓词用于过滤您的搜索结果。要对它们进行排序,您需要使用 NSSortDescriptor。假设您的费用实体上有一个称为日期类型的日期的属性:
func getData() {
let context = appDelegate.persistentContainer.viewContext
let fetchRequest = NSFetchRequest<Expenses>(entityName: "Expenses")
let sort = NSSortDescriptor(key: #keyPath(Expenses.date), ascending: true)
fetchRequest.sortDescriptors = [sort]
do {
expenses = try context.fetch(fetchRequest)
} catch {
print("Cannot fetch Expenses")
}
}
编辑:我应该提到排序选择器被添加到数组中,以便在需要时可以添加多个排序描述符。例如首先按日期排序,然后按腿数排序,然后按体积排序,等等。
关于swift - 按日期排序 - Swift 3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42479412/