2010-03-17 6 views
2

objectif-c Je suis en train de trier un tableau multidimensionnel dans c objectif je sais que je peux trier un tableau à deux dimensions en utilisant la ligne de code ci-dessous:Tri un tableau multidimensionnel dans

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

je peux « t semblent comprendre comment trier un tableau 2D comme celui ci-dessous:

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

Si quelqu'un pouvait me fournir le code qui trier le tableau par SOME_CATEGORY il serait d'une grande aide pour moi.

Merci,

Zen_Silence

Répondre

5

Vous devez utiliser -sortedArrayUsingFunction:context: ou 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]; 

Vous pouvez également créer une classe personnalisée pour votre « tableau » intérieure (qui est plus comme un disque), et mettre en œuvre une méthode -compareByCategory: sur elle.

+0

Travaillé parfaitement grâce beaucoup, je me creusais la tête à ce sujet pendant des heures. Merci pour l'aide! –

Questions connexes