NSMutableArray:索引处的对象到底做了什么?

时间:2013-01-02 21:29:35

标签: cocoa-touch nsmutablearray

我正在运行以下代码并且CCLOG总是被触发..两个指针具有相同的地址,我不明白为什么......我需要帮助:))

项目符号是一个NSMutable数组,在本问题结尾处初始化了200个Bullet:CCSprite实例*。

for (int i=0; i<capacity; i++)
{
    Bullet* bullet = [bullets objectAtIndex:i];

    if (bullet.visible )
    {
        for(int j=i+1;j<capacity;j++)
        {

            Bullet * otherBullet = bullet = [bullets objectAtIndex:j];

            if(bullet.bulletId == otherBullet.bulletId)
            {
                CCLOG(@"noooo.. i:%i j_%j", i, j);
            }

*数组的初始化:

capacity=200;
    bullets = [[NSMutableArray alloc] initWithCapacity:capacity];
    // Create a number of bullets up front and re-use them whenever necessary.
    for (int i = 0; i < capacity; i++)
    {
        Bullet* bullet = [Bullet bulletWithScreenRect:screenRect];
        bullet.visible = NO;
        bullet.bulletId=i;
        [bullets addObject:bullet];
        [self addChild:bullet]; 

1 个答案:

答案 0 :(得分:0)

我的代码中有一个由kevingessner发现的错误:

“Bullet * otherBullet = bullet = [bullets objectAtIndex:j];”

正在将最新的子弹分配给子弹以及以其他方式分配到同一子弹的其他方面。

..所以“索引对象”只做它的工作(返回指向特定索引处对象的指针)