-1

可能重复:
如何对包含 NSDictionaries 的 NSArray 进行排序?

我有一系列字典。这就是我的字典的样子

MOD = 0;
MAU= 30;
MODN = "SOME WORD";
MODID = 518;

我试过像这样对字典数组进行排序

sortedArray = [[ICArray valueForKey:@"MODN"] sortedArrayUsingSelector:@selector(localizedCaseInsensitiveCompare:)];

然而,这只给了我一个按字母顺序排列的MODN中的值数组......实际上我希望将每个字典排序到一个数组中。

任何帮助将不胜感激..

4

1 回答 1

0

您可以使用基于自定义块的比较器来查看每个字典中的值,并根据需要进行排序。像下面这样的东西应该适合你

NSArray *unsortedArray = @[@{@"MOD" : @(0), @"MAU" : @(30), @"MODN" : @"SOME WORD", @"MODID" : @(518)},
                           @{@"MOD" : @(0), @"MAU" : @(30), @"MODN" : @"ANOTHER WORD", @"MODID" : @(518)},
                           @{@"MOD" : @(0), @"MAU" : @(30), @"MODN" : @"THIRD WORD", @"MODID" : @(518)}];

NSArray *sortedArray = [unsortedArray sortedArrayUsingComparator:^(id obj1, id obj2) {
  return [[obj1 valueForKey:@"MODN"] localizedCaseInsensitiveCompare:[obj2 valueForKey:@"MODN"]];
}];
于 2012-11-02T03:07:20.373 回答