代码之家  ›  专栏  ›  技术社区  ›  meman32

如何在objective c中生成CGfloat数组?

  •  17
  • meman32  · 技术社区  · 16 年前

    所以我正在做一个简单的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,它只能存储对象。所以我的问题是,在数组中存储cgfloat的最佳方法是什么?它们是支持cgfloat的不同类型的数组吗?它们是将CGFloat转换为对象的简单方法吗?

    请不要评论我将分数存储在app delegate中的事实,我知道这是个坏主意,但我现在没有心情在app差不多完成的情况下制作一个单例。

    2 回复  |  直到 16 年前
        1
  •  30
  •   Tom Irving    16 年前

    只能将对象添加到 NSArray ,所以如果要添加 CGFloat 对于数组,可以使用 NSNumber .

    NSNumber * aNumber = [NSNumber numberWithFloat:aFloat];
    

    然后把它拿回来:

    CGFloat aFloat = [aNumber floatValue];
    
        2
  •  13
  •   Alex Gray    11 年前

    CGFloat i、 e.基本数组 可以这样构造。。。

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

    后来“使用”的方式类似于。。。

    CGContextSetFillColor(context, colors);
    

    或者 ( 更简洁地说,通过铸造 )...

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

    C 数组 我出去。。。但这是可以做到的“标准”!