假设我的游戏中有以下数据。我用cocos2d开发了游戏。
Name Score
Sagar 10000
Amit 2000
Vishal 90
以上数据存储在plist文件中。
Plist有一个数组作为root。
其中有10个字典。
每个字典都有两个值:
当我使用
时NSMutableArray *x=[[NSMutableArray alloc] initWithContentsOfFile:@"Sagar.plist"];
我想按分数对这个可变数组进行排序。
有可能吗?
答案 0 :(得分:8)
使用排序描述符:
NSSortDescriptor * sortByScore = [[[NSSortDescriptor alloc] initWithKey:@"Score" ascending:NO] autorelease];
NSArray * descriptors = [NSArray arrayWithObject:sortByScore];
NSArray * sorted = [x sortedArrayUsingDescriptors:descriptors];
答案 1 :(得分:1)
请参阅[NSMutableArray sortUsingDescriptors:]
,[NSMutableArray sortUsingComparator:]
等。 NSMutableArray提供了几种排序方法。在这种情况下,如果我需要在10.5之前兼容并使用Snow Leopard应用程序的比较器方法,我将使用描述符方法。
答案 2 :(得分:1)
我相信iPhone,您的选择
- (void)sortUsingFunction:(NSInteger (*)(id, id, void *))compare context:(void *)context;
和
- (void)sortUsingSelector:(SEL)comparator;
这里有很多不错的信息: http://www.cocoadev.com/index.pl?SortUsingSelector
编辑:哎呀!看到cocos2d,并认为这是一个iPhone问题。