首页 > 解决方案 > 从核心数据 Swift 中获取最新项目

问题描述

我正在尝试仅从核心数据存储中获取 10 个最新项目。我已将其设置fetchLimit为 10,它返回添加到商店的前 10 个项目。如何获取最后 10 个项目?

我遇到的一些可能的解决方案建议使用sortDescriptorsDate属性对请求进行排序。但这会导致不良行为(项目按日期而不是按时间顺序排序),因此我正在寻找替代解决方案。

设置fetchOffset获取结果计数 - 10 可能是一个可能的答案,但我认为在执行请求之前获取结果计数并非不可能。

        let managedContext = PersistenceService.managedObjectContext
        let fetchRequest = NSFetchRequest<NSFetchRequestResult>(entityName: "Clip")
        
        fetchRequest.fetchLimit = 10
          do{
             let clipItem = try managedContext.fetch(fetchRequest)
            
             mainClips = clipItem as! [Clip]
          } catch {
            let nserror = error as NSError
            NSLog("Unresolved error \(nserror), \(nserror.userInfo)")
            NSApplication.shared.presentError(nserror)
          }

标签: swiftcore-datansfetchrequest

解决方案


推荐阅读