-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 に答える