Pergunta

Então, estou trabalhando em um jogo simples para iPhone e tentando fazer uma tabela de pontuação local.Quero criar um array e colocar nele as pontuações mais altas.Abaixo está o código que tenho até agora:

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

O problema é que os recordes são um NSMutableArray, que só pode armazenar objetos.Então aqui está minha pergunta: qual é a melhor maneira de armazenar CGFloats em um array?É um tipo diferente de array que suporta CGFloats?É uma maneira simples de transformar um CGFloat em um objeto?

E por favor não comentem o fato de que estou armazenando pontuações no delegado do aplicativo, sei que é uma má ideia, mas não estou com vontade de ter que fazer um singleton agora que os aplicativos estão quase prontos.

Foi útil?

Solução

Você só pode adicionar objetos a um NSArray, então se você quiser adicione CGFloats para um array, você pode usar NSNumber.

Por exemplo:

NSNumber * aNumber = [NSNumber numberWithFloat:aFloat];

Então, para recuperá-lo:

CGFloat aFloat = [aNumber floatValue];

Outras dicas

CGFloat ou sejamatrizes primitivas pode ser construído assim...

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

e posteriormente "usado" de uma forma semelhante a...

CGContextSetFillColor(context, colors);

OU (de forma mais concisa, via casting)...

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

C matrizes bruto estou fora...mas isso PODE ser feito com "© padrão"!

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top