在Swift中对NSDictionary对象的NSArray进行sorting

我已经从API中获取了一些JSON数据,现在有一个NSArray充满了NSDictionary对象。 每个NSDictionary都有一个“name”的键/值对,我想通过该键/值对对NSArray进行sorting。

我已经做了相当多的search,但没有我遇到的解决scheme似乎在新的Swift语言工作,我不知道是否可能是一个错误或不…

我试过了:

var descriptor: NSSortDescriptor = NSSortDescriptor(key: "name", ascending: true) var sortedResults: NSArray = results.sortedArrayUsingDescriptors(NSSortDescriptor(key: "name", ascending: true)) 

但是,这不会编译指出“NSSortDescriptor不能转换为[AnyObject]”。

有什么build议?

你必须传递一个sorting描述符数组(即使它只有一个):

 var descriptor: NSSortDescriptor = NSSortDescriptor(key: "name", ascending: true) var sortedResults: NSArray = results.sortedArrayUsingDescriptors([descriptor]) 

而不是以旧的方式做,为什么不接受新的? swift数组types同时具有sortsorted方法。 您可以提供一个闭包作为sortingfunction:

 var sortedResults= results.sorted { (dictOne, dictTwo) -> Bool in // put your comparison logic here return dictOne["name"]! > dictTwo["name"]! } 
 var arrDescriptor = NSSortDescriptor(key: "", ascending: true) var sortDescriptors: NSArray = [arrDescriptor] _sortedArray = allKeysArray.sortedArrayUsingDescriptors(sortDescriptors as [AnyObject]) print(_sortedArray)