how to sort an NSArray using compare:options
compare, iphone, nsarray, sorting
Solution
You can use the example code given for the `sortedArrayUsingFunction:context:` method which should work fine for NSStrings too as they also have the `intValue` method.
// Place this functions somewhere above @implementation
static NSInteger intSort(id num1, id num2, void *context)
{
int v1 = [num1 intValue];
int v2 = [num2 intValue];
if (v1 < v2)
return NSOrderedAscending;
else if (v1 > v2)
return NSOrderedDescending;
else
return NSOrderedSame;
}
// And used like this
NSArray *sortedArray;
sortedArray = [anArray sortedArrayUsingFunction:intSort context:NULL];
Problem
I have an NSArray containing numbers as NSString objects. ie. ``` [array addObject:[NSString stringWithFormat:@"%d", 100]]; ``` How do I sort the array numerically? Can I use `compare:options` and specify `NSNumericSearch` as `NSStringCompareOptions`? Please give me an example/sample code.