出于某种原因,在更换场景时不会触发我的CCLayer的dealloc.这是替换场景的代码: [[CCDirector sharedDirector] replaceScene:[CCFadeTransition transitionWithDuration:2.0f scene:[HelloWorld scene]]]; 按下按钮时会触发
[[CCDirector sharedDirector] replaceScene:[CCFadeTransition transitionWithDuration:2.0f scene:[HelloWorld scene]]];
按下按钮时会触发上面的代码.
我已经在dealloc方法中放置了一个永远不会触发的NSLog.
更新1:
我最后通过在更换场景之前手动释放内存来解决问题.
当我第一次开始使用cocos2d时,我遇到了同样的问题.在我的情况下,我被添加为目标委托自我,这意味着增加了对自我的引用计数.
[[CCTouchDispatcher sharedDispatcher] addTargetedDelegate:self priority:2] swallowsTouches:NO];
我通过删除所有委托来解决这个问题(你也可以指定特定的委托):
[[CCTouchDispatcher sharedDispatcher] removeAllDelegates];