2009-11-05 6 views
1

Supposons que j'ai les données suivantes dans ma partie. J'ai développé un jeu dans cocos2d.tri dans le tableau nsmutable

Name Score 
Sagar 10000 
Amit  2000 
Vishal  90 

Les données ci-dessus sont stockées dans un fichier plist.

Plist a un tableau en tant que racine.

Dans ce qu'il ya 10 dictionnaire.

Chaque dictionnaire a deux valeurs. valeurs de chaîne - Nom valeur numérique - Score

Quand j'utilise NSMutableArray * x = [[NSMutableArray alloc] initWithContentsOfFile: @ "Sagar.plist"];

Je veux trier ce tableau mutable par score.

Est-ce possible? Comment?

(Est-il question double emploi?)

Merci à l'avance.

Sagar

Répondre

8

Utilisez un descripteur de tri:

NSSortDescriptor * sortByScore = [[[NSSortDescriptor alloc] initWithKey:@"Score" ascending:NO] autorelease]; 
NSArray * descriptors = [NSArray arrayWithObject:sortByScore]; 
NSArray * sorted = [x sortedArrayUsingDescriptors:descriptors]; 
1

Voir [NSMutableArray sortUsingDescriptors:], [NSMutableArray sortUsingComparator:] et ainsi de suite. NSMutableArray fournit plusieurs méthodes de tri. Dans ce cas, j'utiliserais la méthode descripteur si j'avais besoin d'être compatible avant 10.5 et la méthode de comparaison pour les applications Snow Leopard.

+0

Ma question est un peu modifié monsieur bits. –

+0

Cela n'a pas fonctionné pour moi ... il donne s'écraser :( – Abha

1

Je crois sur l'iPhone, vos options sont

- (void)sortUsingFunction:(NSInteger (*)(id, id, void *))compare context:(void *)context; 

et

- (void)sortUsingSelector:(SEL)comparator; 

il y a un tas d'informations sur décent ici: http://www.cocoadev.com/index.pl?SortUsingSelector

EDIT: oups! vu cocos2d et supposé que c'était une question iPhone.

+0

Non, Non. Il s'agit d'une question iPhone.J'utilise plist pour le stockage de score.La question est à propos de plist & array avec plist.Pas besoin de s'inquiéter.I j'étudie votre lien donné. –

Questions connexes