如何对包含字典的数组进行排序?

Ank*_*yas 30 objective-c nsmutablearray nsmutabledictionary

我有一个包含字典的数组; 那么如何根据字典键值对数组进行排序?

小智 86

如果数组中的每个元素都是包含某个键的字典,则可以使用排序描述符对数组进行排序.例如,如果每个元素都是包含名为"name"的键的字典:

NSSortDescriptor *sortByName = [NSSortDescriptor sortDescriptorWithKey:@"name"
    ascending:YES];
NSArray *sortDescriptors = [NSArray arrayWithObject:sortByName];
NSArray *sortedArray = [array sortedArrayUsingDescriptors:sortDescriptors];
Run Code Online (Sandbox Code Playgroud)


dar*_*iaa 10

实现这一目标的另一种方法是使用sortedArrayUsingComparator:方法

NSArray *sortedArray = [array sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj2) {
    return [[obj1 valueForKey:@"value"] compare:[obj2 valueForKey:@"value"]];
}];
Run Code Online (Sandbox Code Playgroud)