Sortierung in NSMutableArray
-
18-09-2019 - |
Frage
Angenommen, ich habe folgende Daten in meinem Spiel. Ich habe entwickelt Spiel in cocos2d.
Name Score
Sagar 10000
Amit 2000
Vishal 90
über Daten in Plist-Datei gespeichert.
Plist hat ein Array als Wurzel.
Innerhalb dass es 10-Wörterbuch ist.
Jedes Wörterbuch hat zwei Werte:
- String-Werte - Name
- Zahlenwert - Score
Wenn ich
NSMutableArray *x=[[NSMutableArray alloc] initWithContentsOfFile:@"Sagar.plist"];
Ich möchte nach Punkten dieses änderbaren Array sortieren.
Ist es möglich?
Lösung
eine Art Descriptor Verwendung:
NSSortDescriptor * sortByScore = [[[NSSortDescriptor alloc] initWithKey:@"Score" ascending:NO] autorelease];
NSArray * descriptors = [NSArray arrayWithObject:sortByScore];
NSArray * sorted = [x sortedArrayUsingDescriptors:descriptors];
Andere Tipps
Siehe [NSMutableArray sortUsingDescriptors:]
, [NSMutableArray sortUsingComparator:]
und so weiter. NSMutableArray bietet verschiedene Methoden zum Sortieren. In diesem Fall würde ich die Descriptor-Methode verwenden, wenn ich vor dem 10.5 und das Komparator Verfahren für Snow Leopard-Anwendungen kompatibel sein benötigt.
Ich glaube, auf dem iPhone, Ihre Optionen sind
- (void)sortUsingFunction:(NSInteger (*)(id, id, void *))compare context:(void *)context;
und
- (void)sortUsingSelector:(SEL)comparator;
gibt es eine Reihe von anständigen Informationen über sie hier: http://www.cocoadev.com/index.pl?SortUsingSelector
EDIT: hoppla! sah cocos2d und nahm es eine iPhone Frage war.