如何在Swift中按属性值对自定义对象数组进行排序?
大家好!我是Swift新手,正在编写一个任务管理小应用。我有一个`Task`结构体,包含`title`、`priority`(Int)和`dueDate`(Date)字段。我创建了一个这样的任务数组:
```swift
struct Task {
let title: String
var priority: Int
var dueDate: Date
}
var tasks = [
Task(title: "买食品", priority: 3, dueDate: Date()),
Task(title: "做报告", priority: 1, dueDate: Date().addingTimeInterval(86400)),
Task(title: "给客户打电话", priority: 2, dueDate: Date().addingTimeInterval(172800))
]
```
现在我想按优先级(从高到低)对这个数组进行排序,然后按日期(从早到晚)。我尝试使用带闭包的`sorted(by:)`,但遇到了类型错误或排序顺序不正确。例如:
```swift
let sortedTasks = tasks.sorted(by: { $0.priority < $1.priority })
```
这是按升序排序,而我需要降序。另外,如何添加第二个排序条件?