-1

これが私のコードです:

NSSortDescriptor *sortByName = [NSSortDescriptor sortDescriptorWithKey:@"contact_name" ascending:YES];
NSArray *sortDescriptors = [NSArray arrayWithObject:sortByName];    
arrayOfDictionary = [arrayOfDictionary sortedArrayUsingDescriptors:sortDescriptors];

であるため、明らかにこれは機能しませarrayOfDictionaryNSMutableArray。私は多くのことを見てきましたが、辞書の配列で見られるすべての並べ替えは、可変でない配列で行われています。でこれを行う方法について、誰かが光を当てることができますかNSMutableArray

4

3 に答える 3

0
arrayOfDictionary = [arrayOfDictionary sortedArrayUsingDescriptors:sortDescriptors] mutableCopy];

それを行うための最良の方法ではありませんが、あなたが望むものを手に入れるでしょう...

于 2013-11-04T20:12:53.713 に答える
0

sortUsingDescriptorsMutable 配列を並べ替えたい場合に使用できます。

于 2013-11-04T20:14:04.067 に答える
0

辞書の配列にキーが含まれている場合、contact_nameコードはほとんど機能するはずです。以下の簡略化により、必要なコードが大幅に減ることに注意してください。

を使用して、変更可能な配列または変更不可能な配列から新しい配列を作成できることに注意してくださいsortedArrayUsingDescriptors。で可変配列をソートすることもできますsortUsingDescriptors

したがって:

NSArray *newArray = [arrayOfDictionary sortedArrayUsingDescriptors:
   @[[NSSortDescriptor sortDescriptorWithKey:@"contact_name" ascending:YES]]];

// if you need it mutable:
NSMutableArray *mutableArrayOfDictionary = [NSMutableArray arrayWithArray:newArray];

また

[mutableArrayOfDictionary sortUsingDescriptors:
   @[[NSSortDescriptor sortDescriptorWithKey:@"contact_name" ascending:YES]]];
于 2013-11-04T20:14:54.657 に答える