通过键值在swift中对Dictionary的NSMutableArray进行排序

时间:2015-03-20 07:54:16

标签: ios sorting swift nsmutablearray

我有一个NSMutableArray,而不是包含这样的字典词典

[[link: myurl, title:My title, pubDate: Wed, 11 Mar 2015 07:00:00 PDT], 
[link: my link, title: my title2 , pubDate: Fri, 20 Mar 2015 01:00:00 PDT]]

我需要在pubDate键上对此数组进行排序,以便将最新事件放在首位 有没有聪明的方法可以快速完成。

谢谢。

1 个答案:

答案 0 :(得分:1)

我认为您应该将pubDate转换为NSDate然后比较2 dateValue,这比比较2 stringValue更好。
 试试这段代码:

var itemArray : NSMutableArray = [["link":"myurl", "title":"My title", "pubDate": "Wed, 11 Mar 2015 07:00:00 PDT" ], ["link" : "my link", "title": "my title2" , "pubDate": "Fri, 20 Mar 2015 01:00:00 PDT"]]
let dateFormatter: NSDateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "EEE, dd MMM yyyy HH:mm:ss z"
itemArray.sortUsingComparator{
    (obj1:AnyObject!, obj2:AnyObject!) -> NSComparisonResult in
    var dateStr1 = obj1["pubDate"] as NSString
    var date1: NSDate = dateFormatter.dateFromString(dateStr1)!
    var dateStr2 = obj2["pubDate"] as NSString
    var date2: NSDate = dateFormatter.dateFromString(dateStr2)!
    return date2.compare(date1)
}

结果:
![enter image description here]

请参阅Format String for the iPhone NSDateFormatter以获取有关dateFormatter的更多信息