Сортировка данных в tableView по дате и времени
у меня есть структура TaskModel, в которой есть свойство date: String? (тут хранится и дата и время с datePicker). Каждый экземпляр структуры хранится в массиве tasksArray, данные из этого массива попадают в tableView. Также данные в массиве хранятся следующим образом:
private var tasksArray: [TaskModel] {
get {
guard let encodedData = defaults.array(forKey: key) as? [Data] else {
return []
}
return encodedData.map { try! JSONDecoder().decode(TaskModel.self, from: $0)
}
}
set {
let data = newValue.map { try? JSONEncoder().encode($0) }
defaults.set(data, forKey: key)
}
}
Подскажите, как можно отсортировать данные в таблице по дате?
Ответы (1 шт):
Автор решения: Oleg Soloviev
→ Ссылка
Вы можете сразу отсортировать массив tasksArray в get. Добавьте в продолжение функции map sorted (разверните optional date, если нужно):
return encodedData.map { try! JSONDecoder().decode(TaskModel.self, from: $0) }.sorted(by: {$0.date < $1.date})