Таким образом, я работаю над простой игрой iPhone и пытаюсь сделать локальную высокую таблицу счета. Я хочу сделать массив и продвинуть самые высокие очки в него. Ниже код, который я имею до сих пор:
CGFloat score;
score=delegate.score;
NSInteger currentindex=0;
for (CGFloat *oldscore in highscores)
{
if (score>oldscore)
{
[highscores insertObject:score atIndex:currentindex]
if ([highscores count]>10)
{
[highscores removeLastObject];
}
}
currentindex+=1;
}
Проблема состоит в том, что highscores является NSMutableArray, который может только хранить объекты. Таким образом, вот мой вопрос, что лучший способ состоит в том, чтобы сохранить CGFloats в массиве? Их другой тип массива, который поддерживает CGFloats? Их простой способ повернуть CGFloat в объект?
И не комментируйте то, что я храню очки в делегате приложения, я знаю, что это - плохая идея, но я не нахожусь в настроении должным быть сделать одиночный элемент теперь, когда приложения почти сделанный.
Вы можете добавлять объекты только в NSArray
, поэтому если вы хотите добавить CGFloat
ы в массив, вы можете использовать NSNumber
.
Например:
NSNumber * aNumber = [NSNumber numberWithFloat:aFloat];
Затем, чтобы получить его обратно:
CGFloat aFloat = [aNumber floatValue];