2012-11-07 22 views
12
NSArray* sortedArray = [myArray sortedArrayUsingSelector:@selector(compare:)]; 

この配列を降順に並べ替えることができますか?逆順でNSArrayをソートする

+2

良い質問。私はそれを知らなかった。 –

答えて

25

どちらかがコンパレータとしてブロックを渡し、オブジェクト(NSOrderedDescendingおよびその逆のためNSOrderedAscending戻る)を反転させるコンパレータを実装することを可能にする方法を使用し....

...または:

NSArray *reversed = [[[myArray sortedArrayUsingSelector:@selector(compare:)] reverseObjectEnumerator] allObjects]; 

申し訳ありません。最も重要な部分をDerped。

+0

コードのないコメントは合理的ですが、この回答のコード行は単純に配列を逆転させます。実際にソートは行われていません。これはソートされた配列で呼び出されるべきであることを明確に述べる方が良いでしょう。 – rmaddy

+0

Yerp。私は元の表現を伸ばした。 – bbum

7

使用NSSortDescriptor

NSSortDescriptor* sortOrder = [NSSortDescriptor sortDescriptorWithKey: @"self" ascending: NO]; 
NSArray *temp = [myArray sortedArrayUsingDescriptors: [NSArray arrayWithObject: sortOrder]]; 
関連する問題