如何在 Objective C 中创建 CGFloats 数组?

发布于 2024-09-09 03:45:36 字数 696 浏览 7 评论 0原文

所以我正在开发一个简单的 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 转变为对象的简单方法吗?

请不要评论我将分数存储在应用程序委托中的事实,我知道这是一个坏主意,但既然应用程序即将完成,我就没有心情必须创建一个单例。

So I'm working on a simple iPhone game and am trying to make a local high score table. I want to make an array and push the highest scores into it. Below is the code I have so far:

    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;
    }

The problem is that highscores is an NSMutableArray, which can only store objects. So here's my question, what is the best way to store CGFloats in an array? Is their a different type of array that supports CGFloats? Is their a simple way to turn a CGFloat into an object?

And please don't comment on the fact that I'm storing scores in the app delegate, I know it's a bad idea, but I'm not in the mood to have to make a singleton now that the apps almost done.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

耀眼的星火 2024-09-16 03:45:36

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

例如:

NSNumber * aNumber = [NSNumber numberWithFloat:aFloat];

然后将其取回:

CGFloat aFloat = [aNumber floatValue];

You can only add objects to an NSArray, so if you want you add CGFloats to an array, you can use NSNumber.

Eg:

NSNumber * aNumber = [NSNumber numberWithFloat:aFloat];

Then to get it back:

CGFloat aFloat = [aNumber floatValue];
放飞的风筝 2024-09-16 03:45:36

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

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

然后以类似于...

CGContextSetFillColor(context, colors);

OR更简洁地,通过转换)...

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

C数组恶心我……但这可以用“标准©”来完成!

CGFloat i.e. primitive arrays can be constructed like so...

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

and subsequently "used" in a fashion similar to...

CGContextSetFillColor(context, colors);

OR (more concisely, via casting)...

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

C arrays gross me out... but this CAN be done with "standard ©"!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文