Как создать массив CGFloats в объекте c?

Итак, я работаю над простой игрой в 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;
    }

Проблема в том, что рекорды - это NSMutableArray, который может хранить только объекты. Итак, вот мой вопрос, что является лучшим способом хранения CGFloats в массиве? Является ли их другим типом массива, который поддерживает CGFloats? Является ли их простой способ превратить CGFloat в объект?

И, пожалуйста, не комментируйте тот факт, что я храню оценки в делегате приложения, я знаю, что это плохая идея, но мне не нравится настраивать синглтон сейчас, когда приложения почти завершены.

Ответы

Ответ 1

Вы можете добавлять объекты только к NSArray, поэтому, если вы хотите добавить CGFloat в массив, вы можете использовать NSNumber.

Например:

NSNumber * aNumber = [NSNumber numberWithFloat:aFloat];

Затем вернемся назад:

CGFloat aFloat = [aNumber floatValue];

Ответ 2

CGFloat т.е. примитивные массивы могут быть построены так...

CGFloat colors[] = { 1, 0, 0, 1 };

а затем "используется" способом, подобным...

CGContextSetFillColor(context, colors);

ИЛИ (более кратко, с помощью кастинга)...

CGContextSetFillColor(context, (CGFloat[]){ 1, 0, 0, 1 });

C массивы грубые меня... но это МОЖНО сделать со стандартом ©!!