1

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

bullets 是一个 NSMutable 数组,其中包含 20000 个 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]; 
4

1 回答 1

0

kevingessner 在我的代码中发现了一个错误:

" 子弹 * 其他子弹 = 子弹 = [子弹 objectAtIndex:j];"

正在将最新的项目符号分配给项目符号以及其他项目符号,以这种方式具有两个指向同一个项目符号的指针。

..so“索引处的对象”只是做它的工作(返回一个指向特定索引处的对象的指针)

于 2013-01-02T22:06:22.030 回答