¿Cómo hago una serie de CGFloats en el objetivo c?
-
13-09-2020 - |
Pregunta
Así que estoy trabajando en un juego simple para iPhone y estoy tratando de crear una tabla de puntuación local alta.Quiero hacer una matriz e incluir en ella las puntuaciones más altas.A continuación se muestra el código que tengo hasta ahora:
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;
}
El problema es que puntuaciones altas es un NSMutableArray, que sólo puede almacenar objetos.Entonces aquí está mi pregunta: ¿cuál es la mejor manera de almacenar CGFloats en una matriz?¿Hay un tipo diferente de matriz que admita CGFloats?¿Es una forma sencilla de convertir un CGFloat en un objeto?
Y no comentes sobre el hecho de que estoy almacenando puntuaciones en el delegado de la aplicación. Sé que es una mala idea, pero no estoy de humor para tener que crear un singleton ahora que las aplicaciones casi están listas.
Solución
Sólo puedes agregar objetos a un NSArray
, así que si quieres agregas CGFloat
s a una matriz, puedes usar NSNumber
.
P.ej:
NSNumber * aNumber = [NSNumber numberWithFloat:aFloat];
Luego para recuperarlo:
CGFloat aFloat = [aNumber floatValue];
Otros consejos
CGFloat
es decir.matrices primitivas se puede construir así...
CGFloat colors[] = { 1, 0, 0, 1 };
y posteriormente "usado" de una manera similar a...
CGContextSetFillColor(context, colors);
O (más concisamente, a través del casting)...
CGContextSetFillColor(context, (CGFloat[]){ 1, 0, 0, 1 });
C
matrices bruto Sacarme...¡Pero esto PUEDE hacerse con "© estándar"!