Aider le tri d'un NSArray à travers deux propriétés (avec NSSortDescriptor?)

Je suis un peu une NSSortDescriptor n00b. Je pense, néanmoins, qu'il est le bon outil pour ce que je dois faire:

J'ai un NSArray composé d'objets avec des touches, dire, "nom" et "temps". Au lieu de verbaliser, voici un exemple:

input:

name: time
B: 4
C: 8
B: 5
C: 4
A: 3
C: 2
A: 1
A: 7
B: 6


desired output:

name: time
A: 1 <---
A: 3
A: 7
C: 2 <---
C: 4
C: 8
B: 4 <---
B: 5
B: 6

Si les valeurs sont triées par "le temps" et regroupées par "nom". Vient d'abord parce qu'il avait la plus petite valeur de temps, et toutes les valeurs pour Un viennent l'une après l'autre. Puis vient C, il a la deuxième plus petite valeur de temps de toutes ses valeurs. J'ai indiqué les valeurs qui déterminent la façon dont les noms sont triés; au sein de chaque nom de groupe, le tri est par le temps.

Comment puis-je obtenir de l'entrée à la sortie NSArray la manière la plus efficace? (cpu et de la mémoire-sage, pas nécessairement au niveau du code.) Comment pourrais-je construire le NSSortDescriptors pour cela, ou utiliser toute autre méthode? Je ne veux pas rouler mes propres sauf si c'est la façon la plus efficace.

OriginalL'auteur Jaanus | 2010-02-03