0

我有一个带有 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] 还是不调用?

4

2 回答 2

2

如果是用 创造menu[CCMenu menuWithItems:...],则不需要在 中释放dealloc,因为它没有被保留。

于 2012-05-25T16:38:06.680 回答
0

我认为您需要将菜单设置为 nil 然后释放它,这可能是您的问题。要回答您的第二个问题,是的,您绝对应该调用 [super dealloc] ,否则可能会导致更多问题。

于 2012-05-24T21:01:44.200 回答