我有一个带有CCMenu的Cocos2d场景(CCLayer)。我将dealloc实现为
- (void) dealloc {
[menu release];
menu = nil;
[super dealloc];
}
当我使用共享导演用另一个替换场景时,它会加载第二个场景,然后在dealloc中编程崩溃,尤其是
[super dealloc]; //Thread1: Program received signal: "EXC_BAD_ACCESS".
替换场景的调用是
[[CCDirector sharedDirector] replaceScene:
[CCTransitionFade transitionWithDuration:0.5f scene:[SomeOtherScene scene]]];
为什么会这样?我应该打电话给[super dealloc]吗?
答案 0 :(得分:2)
如果您使用menu
创建了[CCMenu menuWithItems:...]
,则无需在dealloc
中将其发布,因为它尚未保留。
答案 1 :(得分:0)
我认为您需要将菜单设置为nil然后释放它,这可能是您的问题。要回答你的第二个问题,你肯定应该打电话给[super dealloc],否则可能会引发更多问题。