这是个有点简单的问题,但我想不出来。
1->应用程序启动(使用MainMenu场景)
2->开始(子级场景被替换)
3->选择第一级(Level1Scene被替换.)游戏开始了。)
回到主菜单。(MainMenu场景被替换)
5->开始(子级场景被替换)
6->选择一级
7->碎裂。
方框(32842,0x3f5c9d98) malloc:*对象0x4bed44错误:释放对象后可能修改了不正确的校验和。*在malloc_error_break中设置要调试的断点
当我替换场景a到b时,a是释放的吗?
据我所知,只有pushScene在记忆中保留场景。
+(CCScene *) scene {
CCScene *scene = [CCScene node];
HelloWorldLayer *layer = [HelloWorldLayer node];
[scene addChild: layer];
return scene;
}
场景和层是自动释放的对象。必须在调用replaceScene时释放。(如果在替换场景时发布了以前的场景。)
发布于 2013-03-22 00:56:13
我已经解决了这个问题。很奇怪但很管用。
我有一个名为CCSprite可收集的子类。当第二次更换具有可收藏对象的场景时,它会引起崩溃。我现在把它转换成CCNode和它的作品。
也许能帮上忙。
https://stackoverflow.com/questions/15545782
复制相似问题