![](/img/trans.png)
[英]Sort NSArray of NSDictionary objects using NSSortDescriptor
[英]Sort NSArray of NSDictionary objects in 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))
但这不会编译声明“NSSortDescriptor不能转换为[AnyObject]”。
有什么建议?
你必须传递一系列排序描述符(即使它只是一个):
var descriptor: NSSortDescriptor = NSSortDescriptor(key: "name", ascending: true)
var sortedResults: NSArray = results.sortedArrayUsingDescriptors([descriptor])
而不是以旧的方式做到这一点,为什么不拥抱新的? swift Array类型具有sort
和sorted
方法。 您可以提供闭包作为sort函数:
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)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.