У меня есть основной список приложений с двумя объектами Folder
и Item
с Я- многих отношениях, подкласс папка имеет функцию, называемую itemsArray()
, которая возвращает товары в отсортированном массиве по creationDate
, которые отображаются UITableView
.Сортировка данных по нескольким ключевым значениям
Item
имеет два свойства, называемые date
типа NSDate
и другого типа bool
называется completed
. Я создал функцию, где я могу пометить объект элемента ячейки как завершенный, который изменяет цвет текста ячейки на серый.
Есть ли способ, я могу также сортировать его по его завершенному значению? Например, значение completed
значения true или false должно разделять все завершенные элементы, а затем сортировать их по creationDate
.
Конечный результат должен быть в том случае, если завершенные элементы находятся в нижней части UITableView
и в порядке их действия, а также незавершенные элементы соответствуют порядку даты. Как будто завершение имеет более высокий приоритет, чем дата, но все еще заказы от createDate
Heres my current function с дескриптором сортировки для возврата массива;
func itemsArray() -> [Item] {
let sortDescriptor = NSSortDescriptor(key: "creationDate", ascending: true)
return checklist.sortedArrayUsingDescriptors([sortDescriptor]) as! [Item]
}
PS: Я пробовал некоторые работы обходные, например, при разметке завершенным обновления даты, так что в нижней части. Это отделяет завершенные элементы с незавершенными. Но при снятии маркировки элемента он остается внизу, и это не очень хорошее долгосрочное решение, так как я могу изменить сортировку на алфавит и порядок.
Спасибо! Я очень ценю быстрый способ, я новичок в iOS и стараюсь ознакомиться с закрытием. Результаты были фактически разделены на три группы завершения, после чего я понял, что никогда не устанавливаю значение «false» при добавлении, поэтому элементы фактически имели значение по умолчанию nil, после того, как вы установили, что ваши методы отлично работают (Y) – RileyDev
для sortDescriptors, посмотрите на http: //nshipster.com/nssortdescriptor/ – goggelj