所以我正在制作一款简单的iPhone游戏,并试图制作一张本地高分榜。我想制作一个数组并将最高分数推入其中。以下是我到目前为止的代码:
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;
}
问题是highscores是一个NSMutableArray,它只能存储对象。所以这是我的问题,在阵列中存储CGFloats的最佳方法是什么?它们是支持CGFloats的不同类型的数组吗?他们是将CGFloat变成对象的简单方法吗?
请不要评论我在应用代表中存储分数这一事实,我知道这是一个坏主意,但我现在没心情必须制作单身,因为应用几乎完成了
答案 0 :(得分:30)
您只能向NSArray
添加对象,因此,如果您希望将CGFloat
添加到数组,则可以使用NSNumber
。
例如:
NSNumber * aNumber = [NSNumber numberWithFloat:aFloat];
然后把它拿回来:
CGFloat aFloat = [aNumber floatValue];
答案 1 :(得分:13)
CGFloat
即。原始数组可以这样构造......
CGFloat colors[] = { 1, 0, 0, 1 };
随后以类似于......的方式“使用”
CGContextSetFillColor(context, colors);
OR (更简洁,通过投射)......
CGContextSetFillColor(context, (CGFloat[]){ 1, 0, 0, 1 });
C
数组严重我...但这可以通过“标准©”来完成!