如何在目标c中创建一个CGFloat数组?

时间:2010-07-08 15:02:09

标签: iphone objective-c arrays cgfloat

所以我正在制作一款简单的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变成对象的简单方法吗?

请不要评论我在应用代表中存储分数这一事实,我知道这是一个坏主意,但我现在没心情必须制作单身,因为应用几乎完成了

2 个答案:

答案 0 :(得分:30)

您只能向NSArray添加对象,因此,如果您希望将CGFloat添加到数组,则可以使用NSNumber

例如:

NSNumber * aNumber = [NSNumber numberWithFloat:aFloat];

然后把它拿回来:

CGFloat aFloat = [aNumber floatValue];

答案 1 :(得分:13)

CGFloat 即。原始数组可以这样构造......

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

随后以类似于......的方式“使用”

CGContextSetFillColor(context, colors);

OR 更简洁,通过投射)......

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

C数组严重我...但这可以通过“标准©”来完成!