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"]];
}];
看一看,谢谢你的建议,我不认为第二个版本是一个很好的解决方案,我要实现。。第一个是好的,但只是想让它工作,为我的解决方案现在。。。。