这是一个简单的问题,但我无法理解。
1→应用程序启动(使用MainMenu场景)
2→开始(替换子级别场景)
3→选择第一级(Level1Scene被替换。游戏开始。)
4->返回主菜单。 (MainMenu场景被替换)
5→开始(替换子级别场景)
6->选择第一级
7->崩溃。
box(32842,0x3f5c9d98)malloc: *对象0x4bed44的错误:释放对象的校验和不正确 - 对象可能在被释放后被修改。 * 在malloc_error_break中设置断点以进行调试
当我将场景a替换为b时,是否已发布?
据我所知,只有pushScene会将场景保留在内存中。
+(CCScene *) scene {
CCScene *scene = [CCScene node];
HelloWorldLayer *layer = [HelloWorldLayer node];
[scene addChild: layer];
return scene;
}
场景和图层是自动释放对象。调用replaceScene时必须释放。 (如果在替换场景时释放了上一个场景。)
答案 0 :(得分:0)
我已经解决了这个问题。它奇怪但有效。
我有一个类CCSprite的子类叫做Collectable。当第二次替换具有Collectable对象的场景时,它会出现c房崩溃。我把它转换为CCNode,现在它的作品。
也许对某人有所帮助。