我有两个类,我在同一个数组中添加了两个类对象,两个类对象都有属性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
属性将其缩短。
任何帮助都会受到赞赏。
答案 0 :(得分:1)
将日期属性添加到协议中:
protocol MyType {
var date: String? { get }
}
然后您可以使用类似于:
的类型对数组进行排序array.sort { $0.date < $1.date }
或使用
对其进行排序array.sortInPlace { $0.date < $1.date }
请注意,您使用的字符串格式允许您使用词典排序来实现日期排序顺序,否则您可能希望将日期存储为NSDates。