NSArray* sortedArray = [myArray sortedArrayUsingSelector:@selector(compare:)];
この数値の配列を降順で並べ替える方法を知りたいですか?
NSArray* sortedArray = [myArray sortedArrayUsingSelector:@selector(compare:)];
この数値の配列を降順で並べ替える方法を知りたいですか?
ブロックをコンパレータとして渡すことができるメソッドを使用し、オブジェクトを反転するコンパレータを実装します(NSOrderedDescendingに対してNSOrderedAscendingを返し、その逆も同様です)。
... また:
NSArray *reversed = [[[myArray sortedArrayUsingSelector:@selector(compare:)] reverseObjectEnumerator] allObjects];
ごめん。最も重要な部分を削除しました。
使用するNSSortDescriptor
NSSortDescriptor* sortOrder = [NSSortDescriptor sortDescriptorWithKey: @"self" ascending: NO];
NSArray *temp = [myArray sortedArrayUsingDescriptors: [NSArray arrayWithObject: sortOrder]];
sortedArrayUsingFunction:
配列の並べ替え方法を完全に制御できる方法を使用するのが好きです。次に、結果を逆にすると、返されたはずの負の値が返されます。
NSInteger myCompare (id obj1, id obj2, void *context) {
int retval = [obj1 compare:obj2 options:NSNumericSearch];
retval = -retval; // now it's sorted reverse
return retval;
}
...
NSArray *arr = @[@"foo20zz", @"foo7zz", @"foo100zz"];
NSArray *sarr = [arr sortedArrayUsingFunction:myCompare context:NULL];
NSLog(@"sarr is %@", sarr);