Iphone 按键对数组排序

Iphone 按键对数组排序,iphone,arrays,sorting,Iphone,Arrays,Sorting,我在一个小游戏中使用了两个数组 如果玩家获得的分数高于某个值,他们的名字和分数将通过 标签 NSArray*namesArray=[mainArray objectForKey:@“names”] NSArray*highScoresArray=[mainArray objectForKey:@“分数”] 我需要UILabels以降序显示最高分数,并带有相应的名称。我使用了NSSortDescriptor对分数值进行数字排序 NSSortDescriptor*sortDescriptor; so

我在一个小游戏中使用了两个数组

如果玩家获得的分数高于某个值,他们的名字和分数将通过 标签

NSArray*namesArray=[mainArray objectForKey:@“names”]
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++;
    }