2010-03-17 65 views
2

我想排序在Objective-C多維數組我知道我可以使用下面的代碼行進行排序一維數組:排序在Objective-C多維數組

NSArray *sortedArray = [someArray sortedArrayUsingSelector:@selector(caseInsensitiveCompare:)]; 

我可以「T似乎要弄清楚如何排序的二維數組像下面這樣:

(("SOME_URL", "SOME_STORY_TITLE", "SOME_CATEGORY"), 
    ("SOME_URL", "SOME_STORY_TITLE", "SOME_CATEGORY"), 
    ("SOME_URL", "SOME_STORY_TITLE", "SOME_CATEGORY")); 

如果有人能提供給我的代碼,將通過SOME_CATEGORY數組這將是對我幫助很大排序。

感謝,

Zen_Silence

回答

5

您需要使用-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]; 

可替換地,爲您的內「陣列」(這更像一個記錄)的自定義類,並在其上實現一個-compareByCategory:方法。

+0

非常感謝謝謝,我非常感謝這幾個小時。謝謝您的幫助! – 2010-03-17 17:38:38