Gypsa Gypsa - 7 months ago 32
Objective-C Question

Sorting Array in increasing order

I have an array that contains values like 0,3,2,8 etc.I want to sort my array in increasing order.Please tell me how to do this.

Thanks in advance!!


If your array is an NSArray containing NSNumbers:

NSArray *numbers = [NSArray arrayWithObjects:
                    [NSNumber numberWithInt:0],
                    [NSNumber numberWithInt:3],
                    [NSNumber numberWithInt:2],
                    [NSNumber numberWithInt:8],

NSSortDescriptor* sortDescriptor = [NSSortDescriptor sortDescriptorWithKey:nil ascending:YES selector:@selector(localizedCompare:)];
NSArray *sortedNumbers = [numbers sortedArrayUsingDescriptors:[NSArray arrayWithObject:sortDescriptor]];

Keep in mind though, that this is just one way to sort an NSArray.

Just to name a few other methods of NSArray:

If your array is a c int array containing ints:

#include <stdio.h>
#include <stdlib.h>
int array[] = { 0, 3, 2, 8 };
int sort(const void *x, const void *y) {
    return (*(int*)x - *(int*)y);
void main() {
    qsort(array, 10, sizeof(int), sort);