swift - 按日期排序 - Swift 3

标签 swift core-data

我有一个 func getData() 可以检索核心数据实体,我想按日期对它们进行排序。如何应用 NSPredicate 或 Predicate 从 CoreData 获取按日期排序的数据?

我的核心数据实体: 实体:费用 属性:

  • 数量

  • 类别

  • 日期

    函数 getData() { 让 context = appDelegate.persistentContainer.viewContext

      do {
          expenses = try context.fetch(Expenses.fetchRequest())
      } catch {
          print("Cannot fetch Expenses")
      }
    

最佳答案

谓词用于过滤您的搜索结果。要对它们进行排序,您需要使用 NSSortDescriptor。假设您的费用实体上有一个称为日期类型的日期的属性:

func getData() {
    let context = appDelegate.persistentContainer.viewContext  

    let fetchRequest = NSFetchRequest<Expenses>(entityName: "Expenses")
    let sort = NSSortDescriptor(key: #keyPath(Expenses.date), ascending: true)
    fetchRequest.sortDescriptors = [sort]
    do {
       expenses = try context.fetch(fetchRequest)
    } catch {
        print("Cannot fetch Expenses")
    }
}

编辑:我应该提到排序选择器被添加到数组中,以便在需要时可以添加多个排序描述符。例如首先按日期排序,然后按腿数排序,然后按体积排序,等等。

关于swift - 按日期排序 - Swift 3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42479412/

相关文章:

xcode - 当将项目附加到循环系统内的数组中时,它不起作用(快速)

xcode - 成功登录网站后如何重定向到新网址?

ios - 如何将信息从一个 View Controller 中的 TableView 单元格传递到另一个 View Controller ?

iOS Spritekit intersectsnode 不适用于 SKShapeNode

iphone - 核心数据排序并且不显示重复项

iphone - Restkit内存不足警告

ios - 如何在核心数据中存储UIButton值?

ios - 将方法签名从 Objective-C 转换为 Swift

ios - 从 MKmapview 上选择的 MKAnnotation 获取 URI

iphone - 如何加密 iPhone 上的 CoreData 内容