【问题标题】:How to sort Core Data array based on Date Entered如何根据输入的日期对核心数据数组进行排序
【发布时间】:2020-01-10 11:30:59
【问题描述】:

我有一个存储字符串数组(搜索历史)的小型核心数据模型。

在获取数据时,我想按创建时间排序。我目前在我的模型中只有一个名为 searchHistory 的属性,有没有一种方法可以使用以下代码 (key: 对数据进行排序,或者我是否需要为模型添加一个保存时间?

let request = NSFetchRequest<NSFetchRequestResult>(entityName: entityName)
        request.sortDescriptors = [NSSortDescriptor.init(key: "", ascending: true)]

【问题讨论】:

    标签: ios swift core-data nsfetchrequest nssortdescriptor


    【解决方案1】:

    是的,您需要将第二个属性声明为非可选Date,例如dateCreated。在NSManagedObject 子类中覆盖awakeFromInsert 以指定创建记录的当前日期。

    override func awakeFromInsert() {
        super.awakeFromInsert()
        dateCreated = Date()
    }
    

    然后就可以排序了

    request.sortDescriptors = [NSSortDescriptor(key: "dateCreated", ascending: true)]
    

    ascending 的顺序表示最旧的条目在前。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多