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.

¿Fue útil?

Solución

Sólo puedes agregar objetos a un NSArray, así que si quieres agregas CGFloats 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"!

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top