如何使用返回值对象填充数组

时间:2013-06-06 03:09:35

标签: objective-c cocos2d-iphone box2d-iphone

在下面的方法中,我使用switch-case将对象添加到数组中。

-(void)addBall   {
    switch (ballKind)    {
        case greenBall:
        [ballArray addObject:[self createBallObject:CGPointMake(xPos*(s.width/480.0), yPos*(s.height/320.0)) ballStringName:@"greenBall.png"]];
        break;

    case redBall:
        [ballArray addObject:[self createBallObject:CGPointMake(xPos*(s.width/480.0), yPos*(s.height/320.0)) ballStringName:@"redBall.png"]];
        break;

    case blueBall:
        [ballArray addObject:[self createBallObject:CGPointMake(xPos*(s.width/480.0), yPos*(s.height/320.0)) ballStringName:@"blueBall.png"]];
        break;

    default:
        break;
    }
}

createBallObject返回CCPhysicsSprite。我还有一个返回ballArray的方法:

-(NSMutableArray*)getBallArray    {

  return ballArray;
}

我想访问ballArray中每个createBallObjects的CCPhysicsSprite返回值(每个ballArray元素都是它的相应CCPhysicsSprite)以及它们的b2Body属性,所以我可以在for循环中迭代它们。我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:1)

要在ballArray的特定索引处访问其中一个CCPhysicsSprite对象,请执行以下操作:

int index; // Set this to which index of the array you wish to view.
CCPhysicsSprite *sprite = [ballArray objectAtIndex: index]);

如果要访问ballArray的所有CCPhysicsSprite对象,请执行以下操作:

int count = [myColors count];

for (i = 0; i < count; i++)
{
    CCPhysicsSprite *sprite = [myColors objectAtIndex: count];
}

希望这能回答你的问题。