这是我尝试过的。
在我的init方法中,我初始化了数组:
deleteSprites = [[NSMutableArray alloc] initWithCapacity:500];
这是我将它们添加到数组的方式:
CCSprite *SpriteSave;
SpriteSave = [CCSprite spriteWithBatchNode:Batch rect:CGRectMake(0,0,6,6)];
[Batch addChild:SpriteSave];
[deleteSprites addObject:SpriteSave];
这就是我尝试删除sprite的方法:
delCount = 0;
while (delCount < [deleteSprites count])
CCSprite *delSprite = (CCSprite *) [deleteSprites objectAtIndex:delCount];
[delSprite.parent removeChild:delSprite cleanup:YES];
delCount++;
}
[deleteSprites removeAllObjects];
这会导致某些精灵翻转,但它们仍会出现在屏幕上,并且不会删除任何精灵。我已经在各处进行了研究,虽然我的代码非常类似于让其工作的其他代码,但它仍然不适用于我。我已经阅读了内存管理文档,但我仍然没有看到我做错了什么。此外,我已经尝试将精灵添加到他们应该代表的灯具的用户数据中,当灯具被销毁时,我再一次尝试删除精灵,但同样的事情发生了。请帮忙!。
我弄清楚它是什么。我在一些if语句中出现了逻辑错误,并意外地将sprite添加了两次。对大家抱歉。