cocos2d场景dealloc

时间:2012-05-24 20:57:28

标签: iphone ios cocos2d-iphone

我有一个带有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]吗?

2 个答案:

答案 0 :(得分:2)

如果您使用menu创建了[CCMenu menuWithItems:...],则无需在dealloc中将其发布,因为它尚未保留。

答案 1 :(得分:0)

我认为您需要将菜单设置为nil然后释放它,这可能是您的问题。要回答你的第二个问题,你肯定应该打电话给[super dealloc],否则可能会引发更多问题。