Como faço um array de CGFloats no objetivo c?
-
13-09-2020 - |
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.
Solução
Você só pode adicionar objetos a um NSArray
, então se você quiser adicione CGFloat
s 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"!