这是我尝试过的。
在我的 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 语句中犯了一个逻辑错误,并且不小心添加了两次精灵。对不起大家。