Avatar ·

如何在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 }) ``` 这是按升序排序,而我需要降序。另外,如何添加第二个排序条件?