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]];

スコア配列に共通する 2 つの数字がある場合、数字の 1 つが削除されます。どうすれば修正できますか?

ありがとう<3

4

2 に答える 2

0

私がお勧めするのは、可変配列を使用する代わりに、可変辞書を使用することです。NSNumber をキーとして、名前をオブジェクトとして使用します。キーが古いものと同じである新しいキーと値のペアを追加すると、古いものは失われ、新しいものは保持されます。

これにより、コードの複雑さが大幅に軽減されます。

于 2012-08-27T17:08:54.800 に答える
0

私の理解では、名前の配列とスコアの配列があるということです。名前は、配列のインデックスによってスコアに関連付けられます (つまり、名前[i] にはスコア[i] があります)。この場合の 1 つの解決策は、スコアの配列を並べ替え、乗車のために名前の配列を取得する並べ替えアルゴリズムを実装することです。

または、名前オブジェクトに、各ラウンドのプレーヤーのスコアを含む NSArray メンバー変数を持たせることをお勧めします。次に、特定のラウンドのスコアで名前配列を並べ替えることができます。これが機能しない理由はありますか?

于 2012-08-27T19:38:14.573 に答える