Ios 如何对字典数组进行排序

Ios 如何对字典数组进行排序,ios,nsarray,nsdictionary,Ios,Nsarray,Nsdictionary,可能重复: 我有一系列字典。。这就是我的字典的样子 MOD = 0; MAU= 30; MODN = "SOME WORD"; MODID = 518; 我尝试过像这样对字典数组进行排序 sortedArray = [[ICArray valueForKey:@"MODN"] sortedArrayUsingSelector:@selector(localizedCaseInsensitiveCompare:)]; 然而,这只给了我一个MODN中按字母顺序排列的值数组。。。实际上,我希望将

可能重复:

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

MOD = 0;
MAU= 30;
MODN = "SOME WORD";
MODID = 518;
我尝试过像这样对字典数组进行排序

sortedArray = [[ICArray valueForKey:@"MODN"] sortedArrayUsingSelector:@selector(localizedCaseInsensitiveCompare:)];
然而,这只给了我一个MODN中按字母顺序排列的值数组。。。实际上,我希望将每一本字典排序成一个数组


非常感谢您的帮助。

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

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"]];
}];

看一看,谢谢你的建议,我不认为第二个版本是一个很好的解决方案,我要实现。。第一个是好的,但只是想让它工作,为我的解决方案现在。。。。