我有this [[String:Any]]
,其中每个元素都有这个:
["date":Date,"value":CGFloat]
我想按“日期”键排序。(日期向上或向下)
let sortedArray = array.sort { ($0["date"] as? Date) < ($1["date"] as? Date) }
提供我无法比较2个日期的错误。
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 }
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句