Jorge Israel Peña Jorge Israel Peña - 1 year ago 61
Objective-C Question

Sort an NSArray in Descending Order

Hey guys, I have an

objects that I have successfully sorted in ascending order using the following:

[myArray sortedArrayUsingSelector:@selector(compare:)]

However, I need to sort this in descending order. I take it that
only sorts in ascending order. While I can go about reversing the
, I am curious as to whether or not there is a more simpler or more effective way of going about doing this.


EDIT: I found this question which provides a simple way to reverse iterate an

for (id someObject in [myArray reverseObjectEnumerator])

This works fine, I guess it's a nice simple solution, but I'm curious as to whether or not there is a way to specify sorting in descending order.

Answer Source

Use a sort descriptor

NSSortDescriptor* sortOrder = [NSSortDescriptor sortDescriptorWithKey: @"self" 
                                                            ascending: NO];
return [myArray sortedArrayUsingDescriptors: [NSArray arrayWithObject: sortOrder]];