Cocos2d iphone 启用arc的cocos2d-替换场景后旧场景仍然存在

Cocos2d iphone 启用arc的cocos2d-替换场景后旧场景仍然存在,cocos2d-iphone,automatic-ref-counting,scene,Cocos2d Iphone,Automatic Ref Counting,Scene,我正在尝试用cocos2d实现一个游戏。我根据本教程中的说明启用了arc。 在用主菜单场景替换游戏场景后,我意识到了一个奇怪的行为,我无法理解这个问题。替换后,新场景出现并按我的预期工作,但游戏场景(旧场景)仍会做出反应。我认为当我替换场景时,旧场景应该被完全移除,但它仍然生活在新场景下 部分有关守则如下: 单身人士: +(void) go: (CCLayer *) layer{ CCDirector *director = [CCDirector sharedDirector];

我正在尝试用cocos2d实现一个游戏。我根据本教程中的说明启用了arc。

在用主菜单场景替换游戏场景后,我意识到了一个奇怪的行为,我无法理解这个问题。替换后,新场景出现并按我的预期工作,但游戏场景(旧场景)仍会做出反应。我认为当我替换场景时,旧场景应该被完全移除,但它仍然生活在新场景下

部分有关守则如下:

单身人士:

+(void) go: (CCLayer *) layer{
    CCDirector *director = [CCDirector sharedDirector];
    CCScene *newScene = [Singelton wrap:layer];
    if ([director runningScene]) {
        [director replaceScene: [CCTransitionFlipX transitionWithDuration:0.5 scene:newScene]];
    } else {
        [director pushScene:newScene];
    }
}

+(CCScene *) wrap: (CCLayer *) layer{
    CCScene *newScene = [CCScene node];
    [newScene addChild: layer];
    return newScene;
}

+(void) mainMenu
{
    CCLayer *layer = [MainMenu node];
    [Singleton go:layer];
}
当我需要进入主菜单场景时,我调用singleton类,如下所示

[Singleton mainMenu]
菜单场景出现后,如何杀死游戏场景


谢谢你的帮助。

辛格尔顿做什么?我怀疑这可能是原因,在替换场景时/之后保留场景/层或任何其他节点的引用。

事实上,该类的命名不正确-很抱歉造成误解。这不是一个单例类,只是一个场景管理器,如下面的教程所示。因此加载后没有场景的引用。