我有一个包含字典的数组;那么如何根据字典键值对数组进行排序呢?
答案 0 :(得分:85)
如果数组中的每个元素都是包含某个键的字典,则可以使用排序描述符对数组进行排序。例如,如果每个元素都是包含名为“name”的键的字典:
NSSortDescriptor *sortByName = [NSSortDescriptor sortDescriptorWithKey:@"name"
ascending:YES];
NSArray *sortDescriptors = [NSArray arrayWithObject:sortByName];
NSArray *sortedArray = [array sortedArrayUsingDescriptors:sortDescriptors];
答案 1 :(得分:10)
实现此目的的另一种方法是使用sortedArrayUsingComparator:
方法
NSArray *sortedArray = [array sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj2) {
return [[obj1 valueForKey:@"value"] compare:[obj2 valueForKey:@"value"]];
}];
答案 2 :(得分:1)
答案 3 :(得分:0)
Bavarious的上述共享答案帮助了我。只想添加一个东西。如果你想对一个可变数组进行排序,请使用类似下面的代码
NSSortDescriptor *sortByName = [NSSortDescriptor sortDescriptorWithKey:@"name" ascending:YES];
NSArray *sortDescriptors = [NSArray arrayWithObject:sortByName];
NSMutableArray *sortedArray = [[NSMutableArray sortedArrayUsingDescriptors:sortDescriptors]mutableCopy];
答案 4 :(得分:-3)
let arrDescriptor = NSSortDescriptor(key: "order", ascending: true)
let sortDescriptors: NSArray = [arrDescriptor]
let sortedArray = instancesubArray.sortedArray(using: sortDescriptors as [AnyObject] as [AnyObject] as! [NSSortDescriptor])
print(sortedArray)