我会用sorted(by:)
即
searchHistory.sorted(by: {$0.lastUsage > $1.lastUsage})
全部工作示例:
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "MM-dd-yyyy"
struct ExerciseEquipment
{
let name: String
let lastUsage: Date
}
let myExerciseEquipment =
[
ExerciseEquipment(name: "Golf Clubs", lastUsage: dateFormatter.date(from: "03-16-2015")!),
ExerciseEquipment(name: "Tennis Racket", lastUsage: dateFormatter.date(from: "06-30-2003")!),
ExerciseEquipment(name: "Skis", lastUsage: dateFormatter.date(from: "02-08-2017")!),
ExerciseEquipment(name: "Hockey Stick", lastUsage: dateFormatter.date(from: "09-21-2010")!),
ExerciseEquipment(name: "Mountain Bike", lastUsage: dateFormatter.date(from: "10-30-2016")!)
]
print(myExerciseEquipment.sorted(by: {$0.lastUsage > $1.lastUsage}))
...结果
[ExerciseEquipment(名称: “滑雪板”,lastUsage:2017年-02-08 05:00:00 +0000),ExerciseEquipment(名称:“山地自行车”,lastUsage:2016-10-30 04:00:00 +0000),运动设备(名称:“高尔夫球杆”,lastUsage: 2015-03-16 04:00:00 +0000),ExerciseEquipment(名称:“曲棍球棒”, lastUsage:2010-09-21 04:00:00 +0000 ),ExerciseEquipment(名称: “网球球拍 ”,lastUsage:2003-06-30 04:00:00 +0000)
做'searchHistory'和'lastUsage'有哪些类型?你可以给你的代码行更多的上下文吗? – Cristik
对不起,是的,我可以做到这一点。 –
我得到了那个错误.. Swift将所有NSDate属性转换为Date。我们在NSDate上得到了一个名为isAfter的扩展。所以编译器无法找到isAfter了。编译器错误消息完全是误导。 –