在数组中排序字典?

时间:2011-08-05 03:23:10

标签: arrays sorting

我需要使用字典中的键控对象对nsdictionaries的nsmutablearray进行排序。该对象是NSNumber。如何在第一个对象是最高nsnumber的情况下对nsmutablearray中的字典进行排序?

谢谢!

2 个答案:

答案 0 :(得分:5)

使用block定义的自定义比较器(您可以采用其他方式,但这非常紧凑):

NSComparator mysort = ^(id dict1, id dict2) {
    NSNumber n1 = [dict1 objectForKey:@"key"];
    NSNumber n2 = [dict2 objectForKey:@"key"];
    return (NSComparisonResult)[n1 compare:n2];
};

[yourArray sortUsingComparator:mysort];

答案 1 :(得分:1)

该代码似乎有点偏。这是一个有效的。

[theMutableArrayThatWillBeSorted sortUsingComparator:^NSComparisonResult(id obj1, id obj2) {
    NSNumber* n1 = [obj1 objectForKey:@"key"];
    NSNumber* n2 = [obj2 objectForKey:@"key"];

    return [n1 compare:n2];     
}];