Come faccio a fare una serie di cgfloat nell'obiettivo c?
-
13-09-2020 - |
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.
Soluzione
È possibile aggiungere solo oggetti a un NSArray
, quindi se si desidera aggiungere CGFloat
s 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);
.
CGContextSetFillColor(context, (CGFloat[]){ 1, 0, 0, 1 });
.
C
Arrays Gross Me Out ... Ma questo può essere fatto con "Standard ©"!