0
NSMutableArray *OneNameArray  = [NSMutableArray arrayWithArray:ScoreNameArray];
NSMutableArray *OneScoreArray = [NSMutableArray arrayWithArray:RoundOneScoreArray];


NSDictionary *temp = [NSDictionary dictionaryWithObjects:OneNameArray forKeys:OneScoreArray];
NSSortDescriptor *theDescriptor = [NSSortDescriptor sortDescriptorWithKey:nil ascending:NO selector:@selector(localizedStandardCompare:)];    
RoundOneScoreArray = [[temp allKeys] sortedArrayUsingDescriptors:[NSArray arrayWithObject:theDescriptor]];
ScoreNameArray = [temp objectsForKeys:RoundOneScoreArray notFoundMarker:[NSNull null]];

如果分数数组中有两个共同的数字,那么它将删除其中一个数字。我该如何解决?

谢谢 <3

4

2 回答 2

0

我的理解是,您有一组名称和一组分数。名称通过数组的索引与分数相关联(即 name[i] 具有 score[i])。在这种情况下,一种解决方案将是实现一种排序算法,该算法对分数数组进行排序,并将名称数组随身携带。

或者更好的计划可能是让 name 对象有一个 NSArray 成员变量,其中包含玩家每轮的得分。然后,您可以按给定回合的分数对名称数组进行排序。有什么理由这行不通吗?

于 2012-08-27T19:38:14.573 回答
0

我建议你做的不是使用可变数组,而是使用可变字典。使用 NSNumber 作为键,名称作为对象。当您添加一个新的键值对时,其中的键与旧的相同,旧的将丢失,而新的将保留。

这应该会大大降低您的代码复杂性。

于 2012-08-27T17:08:54.800 回答