【问题标题】:Swift Core Data two sort descriptorsSwift Core Data 两个排序描述符
【发布时间】:2020-04-05 21:48:08
【问题描述】:

任何帮助都会很棒。 Core Data 使用“日期”作为截止日期和截止时间。值来自 Swift UI 选择器 (displayedComponents: .date) 和 (displayedComponents: .hourAndMinute)。排序不正确。

var fetchCategories = [Category]()
            let request: NSFetchRequest<Category> = Category.fetchRequest()
            let predicate = NSPredicate(format: "isComplete == 0")
            let sortDueDate = NSSortDescriptor(key: "dueDate", ascending: true)
            let sortDueTime = NSSortDescriptor(key: "dueTime", ascending: false)
            let sortDescriptors = [sortDueDate, sortDueTime]
            request.sortDescriptors = sortDescriptors
            request.predicate = predicate
            do {
                fetchCategories = try moc.fetch(request)
            } catch {
                print("Error fetching categories \(error.localizedDescription)")
            }
            return fetchCategories

【问题讨论】:

    标签: core-data swiftui


    【解决方案1】:

    Core Data 中的Date 属性存储日期和时间。我猜dueTime 属性包含的日期晚于dueDate 日期,从而导致排序问题。

    解决方案是将dueDate 存储为一个属性。此属性包含日期和时间,您可以在用户界面中单独修改。你也只需要一个SortDescriptor

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-12
      • 2011-03-24
      相关资源
      最近更新 更多