sort
мутирует, поэтому массив должен быть var
и без возврата, и либо принудительно развернуть, либо
array.sort { ($0["date"] as! Date ) < ($1["date"] as! Date ) }
или
array.sort { ($0["date"] as? Date ?? Date() ) < ($1["date"] as? Date ?? Date() ) }
или sorted
let sortedArray = array.sorted { ($0["date"] as? Date ?? Date() ) < ($1["date"] as? Date ?? Date() ) }
Настоятельно рекомендуем
struct Root {
let date:Date
let value:CGFloat
}
var array = [Root(date: Date(), value: 12),Root(date: Date(), value: 14),Root(date: Date(), value: 15)]
let sortedArray = array.sorted { $0.date < $1.date }
// or
let sortedArray = array.sorted { $0.date.compare($1.date) == .orderedAscending }