使用其中一个键内的值对NSDictionaries数组进行排序

这个问题在这里已经有了答案:

  • 我如何排序一个NSMutableArray中的自定义对象? 25个答案
  • 按词典的键值对字典的NSArray进行排序10个答案

  • 使用以下内容;

    NSArray *sortedArray;
    sortedArray = [unsortedArray sortedArrayUsingComparator:^NSComparisonResult(NSDictionary *first, NSDictionary *second) {
        // Calculate distances for each dictionary from the device
        // ...
        return [firstDistance compare:secondDistance];
    }];
    

    不幸的是,你不能排序NSDictionary对象。 你应该创建NSMutableArray并对其进行排序。

    看到这个 - 集合编程主题 - 排序数组

    更新:你可以使用例如NSArray的这种方法来排序字典数组:

    sortedArray = [someArray sortedArrayUsingFunction:compareElements context:NULL];
    

    compareElements函数示例:

    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/70809.html

    上一篇: Sort array of NSDictionaries by a value inside one of the keys

    下一篇: Sort array of objects by their NSDate property