спасибо за чтение моего сообщения.Сортировка массива на основе второго значения кортежа
У меня есть массив кортежей объявленных как таковые:
var myArray: [(item1: String?, item2: NSDate?)] = []
В конце моего цикла я хочу, чтобы отсортировать мой массив кортежей на основе каждого кортеж item2, тип которого NSDate?
.
Основываясь на этом answer и this answer Я пробовал следующее, но получил эту ошибку от компилятора, "cannot invoke 'sort' with an argument list of type '((_,_) -> _)'
.
Вот что я пробовал:
myArray.sort {$0.1.item2?.compare($1.1.item2?) == NSComparisonResult.OrderedDescending }
P.S. println()
отлично работает и печатает item1 и item2 как необязательный.
Неправильная практика использования кортежей в структурах данных, вместо этого используйте массив или словарь. Из Apple Swift iBook: «Кортежи полезны для временных групп связанных значений. Они не подходят для создания сложных структур данных. ** Если ваша структура данных, скорее всего, сохранится за пределами временной области, моделируйте ее как класс или структуру, а не как кортеж. ** « Выдержка из: Apple Inc.« Язык быстрого программирования (Swift 2 Prerelease) . "IBooks. https://itun.es/us/k5SW7.l – zaph