Zen*_*nce 2 sorting iphone objective-c multidimensional-array
我正在尝试在objective-c中对多维数组进行排序,我知道我可以使用下面的代码行对单维数组进行排序:
NSArray *sortedArray = [someArray sortedArrayUsingSelector:@selector(caseInsensitiveCompare:)];
Run Code Online (Sandbox Code Playgroud)
我似乎无法弄清楚如何对2D数组进行排序,如下所示:
( ("SOME_URL", "SOME_STORY_TITLE", "SOME_CATEGORY"),
("SOME_URL", "SOME_STORY_TITLE", "SOME_CATEGORY"),
("SOME_URL", "SOME_STORY_TITLE", "SOME_CATEGORY") );
Run Code Online (Sandbox Code Playgroud)
如果有人可以提供我将通过SOME_CATEGORY对数组进行排序的代码,那对我来说将是非常有帮助的.
谢谢,
Zen_Silence
你需要使用-sortedArrayUsingFunction:context:或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];
Run Code Online (Sandbox Code Playgroud)
或者,为内部"数组"创建一个自定义类(更像是一个记录),并-compareByCategory:在其上实现一个方法.
| 归档时间: |
|
| 查看次数: |
1946 次 |
| 最近记录: |