我有一个 NSMutableArray 的 NSNumbers。我枚举了数组,对于其中的每个“1”,我需要检查它在数组中的位置并做一些事情。我就是这样做的:
for (NSNumber *number in fieldArray) {
int temp = [number intValue];
if (temp != 0)
{
if (temp == 1)
{
switch ([fieldArray indexOfObject:number]) {
case 0:
{
CCSprite *x = [CCSprite spriteWithFile:@"x.png"];
x.position = ccp(53,265);
[self addChild:x];
}
break;
case 1:
{
//this code never gets called
}
因为我在数组的零位置有一个“1”,所以我的 switch 语句除了数字 1 永远不会去任何地方。我该如何解决这个问题?如何检查数组单元格中东西的位置?
为什么我需要这个以及为什么我这样做。我正在做一个井字游戏。我将字段存储在 NSMutableArray 中,容量为 9。因此数组中的每个数字都是游戏场上的一个单元格。如果单元格为空,则该位置的数组保持为零,如果有 x - 数组中有 1 个值,如果单元格中有 0 - 数组保持 2。当绘制时间到来时,我遍历数组并检查什么我看到的价值。如果值为零,我什么也不做,但如果是一,我在某个位置绘制。也许有更简单的方法可以做到这一点,如果没有办法解决我的问题,你可以指出我的方向。
编辑:工作解决方案是将枚举更改为通常的循环。
for (int i = 0; i < 9; i++) {
int temp = [[fieldArray objectAtIndex:i] intValue];
if (temp == 1)
{
switch (i) {
case 0:
{
CCSprite *x = [CCSprite spriteWithFile:@"x.png"];
x.position = ccp(53, 265);
[self addChild:x z:1];
break;
}
case 1:
{
CCSprite *x = [CCSprite spriteWithFile:@"x.png"];
x.position = ccp(159, 265);
[self addChild:x z:1];
break;
}