简体   繁体   中英

How to sort Core Data array based on Date Entered

I have a small Core Data Model which stores an array of Strings (search history).

When fetching the Data I'd like to sort by the time created. I currently just have one property in my model called searchHistory is there a way I can use the following code (key: to sort the data or will I need to add a time saved to the model?

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

Yes, you need a second attribute declared as non-optional Date for example dateCreated . In the NSManagedObject subclass override awakeFromInsert to assign the current date when the record is created.

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

Then you can sort

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

in ascending order means the oldest entry comes first.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM