I'm trying to sort a multidimensional array in objective-c i know that i can sort a single dimensional array using the line of code below:
NSArray *sortedArray = [someArray sortedArrayUsingSelector:@selector(caseInsensitiveCompare:)];
I can't seem to figure out how to sort a 2D array like the one below:
( ("SOME_URL", "SOME_STORY_TITLE", "SOME_CATEGORY"),
("SOME_URL", "SOME_STORY_TITLE", "SOME_CATEGORY"),
("SOME_URL", "SOME_STORY_TITLE", "SOME_CATEGORY") );
If someone could provide me code that would sort the array by SOME_CATEGORY it would be of great help to me.
Thanks,
Zen_Silence
You need to use -sortedArrayUsingFunction:context:
or sortedArrayUsingFunction:context:hint:
.
static NSInteger order (id a, id b, void* context) {
NSString* catA = [a lastObject];
NSString* catB = [b lastObject];
return [catA caseInsensitiveCompare:catB];
}
...
NSArray* sortedArray = [someArray sortedArrayUsingFunction:order context:NULL];
Alternatively, create a custom class for your inner "array" (which is more like a record), and implement a -compareByCategory:
method on it.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.