如何使用 swift 对单个数组中日期为 属性 的多个 class 对象进行排序?

How to sort multiple class objects with date property in single array with swift?

我有两个 class 并且我在同一个数组中添加了两个 class 对象并且两个 class 对象都有 属性 date 下面是我的代码:

protocol MyType {

}


class A: MyType {

    var type: Int?
    var date: String?

    init(type: Int, date: String) {
        self.type = type
        self.date = date
    }
}

class B: MyType {

    var name: String?
    var date: String?

    init(name:String, date: String) {
        self.name = name
        self.date = date
    }
}

var array = [MyType]()

let AObject1 = A(type: 1, date: "2015-11-04")
let AObject2 = A(type: 2, date: "2015-11-05")
let BObject1 = B(name: "Birthday", date: "2015-11-03")
let BObject2 = B(name: "Events", date: "2015-11-12")

array.append(AObject1)
array.append(AObject2)
array.append(BObject1)
array.append(BObject2)

所有对象都已成功添加到 array 但我不知道如何用 date 属性.

缩短它

如有任何帮助,我们将不胜感激。

将日期 属性 添加到您的协议中:

protocol MyType {
    var date: String? { get }
}

然后您可以使用类似于以下内容的方式对数组进行排序:

array.sort { [=11=].date < .date }

或使用

对其进行排序
array.sortInPlace { [=12=].date < .date }

请注意,您使用的字符串格式允许您使用字典排序来实现日期排序,否则您可能希望将日期存储为 NSDates。