我发现当我将场景从游戏替换为菜单,然后尝试回到游戏时,userData以某种方式填满,并且联系人监听器正在阅读某些东西并尝试采取行动,因此我会崩溃。
我在联系中有这一行:
if( bodyA->GetUserData() !=NULL && bodyB->GetUserData() !=NULL)
{
CCSprite *actora = (CCSprite*)bodyA->GetUserData();
CCSprite *actorb = (CCSprite*)bodyB->GetUserData();
在我更换我的场景之前,我会消灭所有的身体,但不知何故,当我回到游戏场景时,用户数据已满,当场景开启时这个条件为真,并且它崩溃。那是因为那里屏幕上不是任何精灵或身体。
如何在更换场景之前删除userData? 如何从UserData中删除我的精灵?
答案 0 :(得分:0)
你确定你的dealloc方法中有这个代码吗?
delete world;
world = NULL;