1

这是我尝试过的。

在我的 init 方法中,我初始化了数组:

deleteSprites = [[NSMutableArray alloc] initWithCapacity:500];

这就是我将它们添加到数组中的方式:

CCSprite *SpriteSave;
SpriteSave = [CCSprite spriteWithBatchNode:Batch rect:CGRectMake(0,0,6,6)];
[Batch addChild:SpriteSave];
[deleteSprites addObject:SpriteSave];

这就是我尝试删除精灵的方式:

delCount = 0;
while (delCount < [deleteSprites count])
    CCSprite *delSprite = (CCSprite *) [deleteSprites objectAtIndex:delCount];
    [delSprite.parent removeChild:delSprite cleanup:YES];
    delCount++;
}
[deleteSprites removeAllObjects];

这会导致一些精灵翻转,但它们仍然出现在屏幕上并且没有被删除。我已经到处研究过了​​,虽然我的代码与其他让它工作的代码非常相似,但它仍然对我不起作用。我也已经阅读了内存管理文档,但我仍然没有看到我做错了什么。此外,我尝试将精灵添加到他们应该代表的灯具的用户数据中,当灯具被销毁时,我再次尝试删除精灵,但同样的事情发生了。请帮忙!。

我弄清楚那是什么。我在一些 if 语句中犯了一个逻辑错误,并且不小心添加了两次精灵。对不起大家。

4

0 回答 0