17

だから私は簡単な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をオブジェクトに変える簡単な方法ですか?

また、アプリのデリゲートにスコアを保存しているという事実についてコメントしないでください。これは悪い考えですが、アプリがほぼ完成したので、シングルトンを作成する必要はありません。

4

2 に答える 2

30

オブジェクトはにのみ追加できるNSArrayため、配列にsを追加する場合CGFloatは、を使用できますNSNumber

例えば:

NSNumber * aNumber = [NSNumber numberWithFloat:aFloat];

それからそれを取り戻すために:

CGFloat aFloat = [aNumber floatValue];
于 2010-07-08T15:06:23.920 に答える
13

CGFloat つまり、プリミティブ配列は次のように構築できます...

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

その後、次のような方法で「使用」されます。

CGContextSetFillColor(context, colors);

またはより簡潔に、キャストを介して)..。

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

C配列は私を大げさにします...しかし、これは「標準©」で行うことができます!

于 2012-11-27T23:06:57.153 に答える