首先。谢谢你的帮助,抱歉我的英语很差......
我使用cocos2d来开发2D游戏。
在游戏中,我使用4个场景(主要,等级,设置,游戏)
在Appdelegate中,我使用下面的代码制作mainscene。
[[CCDirector sharedDirector] runWithScene: [MainMenuLayer scene]];
我使用“replaceScene”来改变代码如下的场景。 (在MainmenyLayer)
[[CCDirector sharedDirector] replaceScene:[CCTransitionFade transitionWithDuration:1.0 scene:[TutorialLayer scene]]];
(在TutorialLayer中)
[[CCDirector sharedDirector] replaceScene:[CCTransitionFade transitionWithDuration:1.0 scene:[GameLayer scene]]];
看起来效果很好。
但是当我测试内存泄漏时。我发现场景变化之间存在泄漏。
我想每次改变场景。创建了一个新的场景对象,但没有发布。
我检查了dealloc功能,它正在工作。像贝娄 -
-(void) dealloc {
[self release]
[super dealloc];
}
但是当我运行泄漏配置文件时,每当我在场景之间切换时,我都会看到内存不断堆叠。
我如何像这种情况一样管理内存释放?
再一次,感谢你的帮助。
答案 0 :(得分:0)
您不必在dealloc方法中使用[self release]释放CCLayer,cocos2d会为您处理。 事实上,所有Cocos2D节点都是自动释放对象,并由cocos2d自动释放。 只有你自己使用alloc,retain或new分配任何东西,你必须释放它。