Iphone 按键对数组排序
我在一个小游戏中使用了两个数组 如果玩家获得的分数高于某个值,他们的名字和分数将通过 标签 NSArray*namesArray=[mainArray objectForKey:@“names”]Iphone 按键对数组排序,iphone,arrays,sorting,Iphone,Arrays,Sorting,我在一个小游戏中使用了两个数组 如果玩家获得的分数高于某个值,他们的名字和分数将通过 标签 NSArray*namesArray=[mainArray objectForKey:@“names”] NSArray*highScoresArray=[mainArray objectForKey:@“分数”] 我需要UILabels以降序显示最高分数,并带有相应的名称。我使用了NSSortDescriptor对分数值进行数字排序 NSSortDescriptor*sortDescriptor; so
NSArray*highScoresArray=[mainArray objectForKey:@“分数”] 我需要UILabels以降序显示最高分数,并带有相应的名称。我使用了NSSortDescriptor对分数值进行数字排序 NSSortDescriptor*sortDescriptor; sortDescriptor=[[NSSortDescriptor alloc]initWithKey:@“self” 升序:无]自动释放] 由于分数现在按降序显示,因此这项功能非常有效 问题是,我需要相应的名称也按照新的排序顺序显示 我不能使用相同的排序选择器,也不习惯按字母顺序排序,它们需要 与第一次输入的名称/分数值相对应
提前感谢您需要将名称和分数合并到NSDictionary的单个实例中,然后创建这些NSDictionary实例的NSArray。然后,当您按分数排序时,您可以调出相应的名称。谢谢卢修斯。像这样的。。。NSDictionary*entry1=[[NSDictionary alloc]initWithObjectsAndKeys:@“Dave”,“name”,“103”,“score”,nil];NSArray*array=[[NSArray alloc]initWithObjects:entry1,nil];
NSArray *sortDescriptors = [NSArray arrayWithObject:sortDescriptor];
NSArray *sortedScore = [[NSArray alloc]init];
sortedScore = [scoresArray sortedArrayUsingDescriptors:sortDescriptors];
NSMutableArray *scoreLabels = [NSMutableArray arrayWithCapacity:10];
[scoreLabels addObject:scoreLabel1];
......
NSUInteger _index = 0;
for (NSNumber *_number in sortedScore) {
UILabel *_label = [scoreLabels objectAtIndex:_index];
_label.text = [NSString stringWithFormat:@"%d", [_number intValue]];
_index++;
}