Sort array of NSDictionaries by a value inside one of the keys
This question already has an answer here:
使用以下内容;
NSArray *sortedArray;
sortedArray = [unsortedArray sortedArrayUsingComparator:^NSComparisonResult(NSDictionary *first, NSDictionary *second) {
    // Calculate distances for each dictionary from the device
    // ...
    return [firstDistance compare:secondDistance];
}];
Unfortunately you can't sort NSDictionary objects. You should create NSMutableArray and sort it instead.
See this - Collections Programming Topics - Sorting Arrays
Update: To sort array of dictionaries you can use for example this method of NSArray:
sortedArray = [someArray sortedArrayUsingFunction:compareElements context:NULL];
The compareElements function example:
NSInteger compareElements (id num1, id num2, void *context)
{
    int v1 = [[num1 objectForKey:@"distance"] integerValue];
    int v2 = [[num2 objectForKey:@"distance"] integerValue];
    if (v1 < v2)
        return NSOrderedAscending;
    else if (v1 > v2)
        return NSOrderedDescending;
    else
        return NSOrderedSame;
}
                        链接地址: http://www.djcxy.com/p/70810.html
                        上一篇: 按对象值排序NSMutableArray
