tags:

views:

35

answers:

2

Hi Guys,

I have objects in my NSMUtableArray and I need to sort them in descending order based on the tax.taxName.Can any body suggest me how to do this.

Hope I get Quick response from you guys.

Thanks in advance. Monish.

A: 

Since iOS4 you can use comparators with this NSArray message:

- (NSArray *)sortedArrayUsingComparator:(NSComparator)cmptr

you would write something like this:

NSArray *sortedArray = [unsortedArray sortedArrayUsingComparator:^(id object1, id object2) { // return NSComparisonResult ... }]

Another possibility is to define a c function which is used as callback with this NSArray message:

- (NSArray *)sortedArrayUsingFunction:(NSInteger (*)(id, id, void *))comparator context:(void *)context

Take a look in the NSArray Documentation there are messages for sorting with selectors or descriptors also. It depends on what fits best for you.

thatsdisgusting
A: 

If assume right, that the objects in your array are of a custom class, implement a method in that class:

- (NSComparisonResult)compareByTax:(id)other
{
  return [[self valueForKeyPath: @"tax.taxName"] compare: [other valueForKeyPath: @"tax.taxName"]];
}

Then do the following:

[array sortUsingSelector: @selector(compareByTax:)];
Max Seelemann