如何根据输入的日期对核心数据数组进行排序

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 顺序表示最早的条目在前。