I\'m trying to make a high score table, and suck at arrays in objective c (actually, in general objective c is challenging for me), so I can\'t figure out how to sort. I\'m
[highscores sortUsingSelector:@selector(compare:)];
Should work if they're definitely all NSNumber
s.
(Adding an object is:
[highscores addObject:score];
)
If you want to sort descending (highest-first):
10.6/iOS 4:
[highscores sortUsingComparator:^(id obj1, id obj2) {
if (obj1 > obj2)
return NSOrderedAscending;
else if (obj1 < obj2)
return NSOrderedDescending;
return NSOrderedSame;
}];
Otherwise you can define a category method, e.g.:
@interface NSNumber (CustomSorting)
- (NSComparisonResult)reverseCompare:(NSNumber *)otherNumber;
@end
@implementation NSMutableArray (CustomSorting)
- (NSComparisonResult)reverseCompare:(NSNumber *)otherNumber {
return [otherNumber compare:self];
}
@end
And call it:
[highscores sortUsingSelector:@selector(reverseCompare:)];