如何根据输入的日期对核心数据数组进行排序
How to sort Core Data array based on Date Entered
我有一个小型核心数据模型,它存储一个字符串数组(搜索历史)。
在获取数据时,我想按创建时间排序。我目前在我的模型中只有一个 属性 名为 searchHistory
有没有一种方法可以使用以下代码 (key:
对数据进行排序,或者我是否需要添加一个保存到模型的时间?
let request = NSFetchRequest<NSFetchRequestResult>(entityName: entityName)
request.sortDescriptors = [NSSortDescriptor.init(key: "", ascending: true)]
是的,您需要声明为非可选的第二个属性 Date
,例如 dateCreated
。在 NSManagedObject
子类中覆盖 awakeFromInsert
以指定创建记录时的当前日期。
override func awakeFromInsert() {
super.awakeFromInsert()
dateCreated = Date()
}
然后就可以排序了
request.sortDescriptors = [NSSortDescriptor(key: "dateCreated", ascending: true)]
按 ascending
顺序表示最早的条目在前。
我有一个小型核心数据模型,它存储一个字符串数组(搜索历史)。
在获取数据时,我想按创建时间排序。我目前在我的模型中只有一个 属性 名为 searchHistory
有没有一种方法可以使用以下代码 (key:
对数据进行排序,或者我是否需要添加一个保存到模型的时间?
let request = NSFetchRequest<NSFetchRequestResult>(entityName: entityName)
request.sortDescriptors = [NSSortDescriptor.init(key: "", ascending: true)]
是的,您需要声明为非可选的第二个属性 Date
,例如 dateCreated
。在 NSManagedObject
子类中覆盖 awakeFromInsert
以指定创建记录时的当前日期。
override func awakeFromInsert() {
super.awakeFromInsert()
dateCreated = Date()
}
然后就可以排序了
request.sortDescriptors = [NSSortDescriptor(key: "dateCreated", ascending: true)]
按 ascending
顺序表示最早的条目在前。