ゲームのハイスコアを表示するためのアイデアを思いつきました。実際にやろうとしていることは、基本的に に 2 つの数字を追加しNSMutableArray
、2 つの数字の間で最大のものをチェックすることです。
@property (strong, nonatomic) NSMutableArray *highscoreArray;
-(void)displaHighScorelabel:(int)score
{
NSNumber *point = [NSNumber numberWithInt:score];
[self.highscoreArray addObject:point];
int highscore = 0;
if([self.highscoreArray indexOfObject:[self.highscoreArray lastObject]] == 0)
highscore = [[self.highscoreArray lastObject]integerValue];
else for(int i=0; i < [self.highscoreArray count];i++)
{
if ([self.highscoreArray[i] intValue] >= [self.highscoreArray[i+1] intValue]) {
[self.highscoreArray removeObjectAtIndex:i+1];
highscore = [self.highscoreArray[i] intValue];
}
else if([self.highscoreArray[i] intValue] <= [self.highscoreArray[i+1] intValue])
{
[self.highscoreArray removeObjectAtIndex:i];
highscore = [self.highscoreArray[i+1] intValue];
}
}
self.highscoreLabel.text = [NSString stringWithFormat:@"High Score: %i",highscore];
[self CheckSomething:self.highscoreArray];
}
問題は、配列がヒープに 1 つの数値しか保持しないことです。解放せずに保管するにはどうすればよいですか?次に追加する番号はインデックス 0 になるため、基本的には前の番号がヒープから解放されたことを意味します。