我會用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了。編譯器錯誤消息完全是誤導。 –