Domanda

Quindi sto lavorando su un semplice gioco di iPhone e sto cercando di fare un tavolo di punteggio alto locale.Voglio fare un array e spingere i punteggi più alti in esso.Di seguito è riportato il codice che ho finora:

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

Il problema è che il punteggio di alto livello è un nsmutablearay, che può memorizzare solo oggetti.Quindi ecco la mia domanda, qual è il modo migliore per archiviare CGFloats in un array?È il loro diverso tipo di array che supporta CGFloats?È il loro modo semplice per trasformare un cgfloat in un oggetto?

E per favore non commentare il fatto che sto memorizzando i punteggi nell'app delegato, so che è una cattiva idea, ma non sono dell'umore giusto per fare un singleton ora che le app quasi fatte.

È stato utile?

Soluzione

È possibile aggiungere solo oggetti a un NSArray, quindi se si desidera aggiungere CGFloats a un array, è possibile utilizzare NSNumber.

EG:

NSNumber * aNumber = [NSNumber numberWithFloat:aFloat];
.

Quindi per riprenderlo:

CGFloat aFloat = [aNumber floatValue];
.

Altri suggerimenti

CGFloat I.e.Array primitivi possono essere costruiti come ...

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

e successivamente "usato" in modo simile a ...

CGContextSetFillColor(context, colors);
.

o ( più conciso, via casting ) ...

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

C Arrays Gross Me Out ... Ma questo può essere fatto con "Standard ©"!

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top