Swift Core Data два дескриптора сортировки - PullRequest
0 голосов
/ 06 апреля 2020

Любая помощь будет отличной. Базовые данные используют «Дата» как для срока оплаты, так и для срока выполнения. Значения взяты из средства выбора Swift UI (displayComponents: .date) и (displayComponents: .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

enter image description here

1 Ответ

0 голосов
/ 06 апреля 2020
Атрибут

A Date в Базовых данных хранит дату и время. Я предполагаю, что атрибут dueTime содержит дату после даты dueDate, что вызывает проблемы с сортировкой.

Решение состоит в том, чтобы сохранить dueDate как один атрибут. Этот атрибут содержит как дату, так и время, которое вы можете изменить отдельно в своем пользовательском интерфейсе. Вам нужен только один SortDescriptor тоже.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...