jop*_*eek 11 arrays sorting dictionary ios swift
我从API中检索了一些JSON数据,现在有一个NSArray充满了NSDictionary对象.每个NSDictionary都有一个键/值对"name",我想通过该键/值对对NSArray进行排序.
我已经做了很多搜索,但我遇到的解决方案似乎都没有使用新的Swift语言,我不确定它是否可能是一个bug或者不...
我试过了:
var descriptor: NSSortDescriptor = NSSortDescriptor(key: "name", ascending: true)
var sortedResults: NSArray = results.sortedArrayUsingDescriptors(NSSortDescriptor(key: "name", ascending: true))
Run Code Online (Sandbox Code Playgroud)
但这不会编译声明"NSSortDescriptor不能转换为[AnyObject]".
有什么建议?
kam*_*ala 32
你必须传递一系列排序描述符(即使它只是一个):
var descriptor: NSSortDescriptor = NSSortDescriptor(key: "name", ascending: true)
var sortedResults: NSArray = results.sortedArrayUsingDescriptors([descriptor])
Run Code Online (Sandbox Code Playgroud)
Col*_*inE 12
而不是以旧的方式做到这一点,为什么不拥抱新的?雨燕数组类型既有sort和sorted方法.您可以提供闭包作为sort函数:
var sortedResults= results.sorted {
(dictOne, dictTwo) -> Bool in
// put your comparison logic here
return dictOne["name"]! > dictTwo["name"]!
}
Run Code Online (Sandbox Code Playgroud)