2015-11-07 46 views
0

我有兩個班,我加在同一陣列中的兩個類對象和兩個類對象有屬性date以下是我的代碼:如何使用swift將單個數組中的多個類對象與日期屬性進行排序?

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

看到這個[link1](http://stackoverflow.com/questions/31729337/swift-2-0-sorting-array-of-objects-by-property)&[link2](http:// stackoverflow。 com/questions/33357568/swift-2-sort-multi-dimensional-array-by-date),如果你沒有得到答案,我們會支持你 –

+0

final array你可以用'array.sort {$ 0 .yourdate <$ 1.yourdate}'else else你可以對'array.sortInPlace {$ 0.yourdate <$ 1.yourdate}'進行排序,不要在實例數組中打擾 –

回答

1

日期屬性添加到您的協議:

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

然後你就可以用類似的東西數組排序:

array.sort { $0.date < $1.date } 

,或者在適當的位置進行排序

array.sortInPlace { $0.date < $1.date } 

請注意,您使用的字符串格式允許您使用字典排序來實現日期排序順序,否則您就是mi ght想要將日期存儲爲NSDates。

相關問題