按日期对数组进行SWIFT排序的数组

时间:2020-11-11 18:01:21

标签: arrays swift sorting

我正在尝试在Swift中按日期对数组数组进行排序,但是出现了这三个错误:

  • 无法根据成员'orderedAscending'推断上下文基础
  • “任何”类型的值没有成员“比较”
  • 将'Any'投射为'AnyObject'或使用'as!'强制向下转换为更特定的类型以访问成员

这是数组声明:

let array = [[5.5, 1, 2020-11-05 23:00:00 +0000], [8.0, 2, 2020-11-10 23:00:00 +0000], [5.5, 1, 2020-10-27 23:00:00 +0000]]

这就是我编写的用于对数组进行排序的代码:

let sortedArray = array.sorted(by: { (($0[2]).compare($1[2]))! == .orderedAscending })
array = sortedArray

我该如何解决? 预先感谢

1 个答案:

答案 0 :(得分:0)

您需要转换元素以对Date进行排序。以下强制类型转换将每个子数组的最后一个元素转换为Date,如果强制类型转换失败,则将最后对子数组进行排序

let sorted = array.sorted(by: { ($0.last as? Date ?? Date.distantFuture) < ($1.last as? Date ?? Date.distantPast)})
相关问题