在CoreData中排序

问题描述 投票:0回答:1

如何在 CoreData 中使用排序? 我想按属性对它们进行排序,即时间

我也想使用这两个线程。有人知道如何使用这两个:

获取偏移量<==========

获取限制<===========

final class PersistantManager {
    private init(){}
    static let shared = PersistantManager()
    // MARK: - Core Data stack

     lazy var persistentContainer: NSPersistentContainer = {
         
         let container = NSPersistentContainer(name: "_chans_")
         container.loadPersistentStores(completionHandler: { (storeDescription, error) in
             if let error = error as NSError? {
                 
                 fatalError("Unresolved error \(error), \(error.userInfo)")
             }
         })
         return container
     }()

    lazy var context = persistentContainer.viewContext
     // MARK: - Core Data Saving support

     func save () {
         let context = persistentContainer.viewContext
         if context.hasChanges {
             do {
                 try context.save()
                print("success save")
             } catch {
                
                 let nserror = error as NSError
                 fatalError("Unresolved error \(nserror), \(nserror.userInfo)")
             }
         }
     }
    func fetch<T: NSManagedObject>(_ objectType : T.Type) -> [T] {
        let entityname = String(describing: objectType)
        let fetchrequest = NSFetchRequest<NSFetchRequestResult>(entityName: entityname)
        do {
            let fetchedobject = try context.fetch(fetchrequest) as? [T]
            return fetchedobject ?? [T]()
        }catch{
            print(error)
            return [T]()
        }
        
    }
}

和我的获取代码:

guard let Bookmarks = try! PersistantManager.shared.context.fetch(HistoryBookmarks_Coredata.fetchRequest()) as? [HistoryBookmarks_Coredata] else {return}
swift core-data fetch limit
1个回答
1
投票

您需要做的就是设置获取请求的排序描述符。

// replace "key" with the property you want to sort by
let sort = NSSortDescriptor(key: "key", ascending: false)
let fetchrequest = NSFetchRequest<NSFetchRequestResult>(entityName: entityname)
fetchrequest.sortDescriptors = [sort]

fetchLimit指定要获取的最大记录数。

fetchOffset 允许您跳过指定数量的行。

如果您想了解属性的用途,文档是一个很好的起点。

© www.soinside.com 2019 - 2024. All rights reserved.