在cocos2d removeChild中将清理设置为YES会怎么做?

Mas*_*son 3 cocos2d-iphone ios

我想我可能在我的代码中导致了一个错误,因为我不清楚清理是什么:removeChild的一部分:cleanup:cocos2d ccnode类的方法.

谢谢.

Yve*_*org 7

它会停止所有操作并取消计划与CCNode关联的任何计划选择器,基本上删除cocos对该对象可能具有的任何引用.它还将清理调用传播到所有对象的子节点.如果对象是可自动恢复的对象而您没有保留对它的引用,则对象本身及其子对象应由objective-c运行时回收内存.对于几乎所有对象都是如此,但如果您将对象添加为目标触摸委托则不会.在这种情况下,我建议覆盖onExit方法,如下所示:

- (void) onExit{
    [[CCTouchDispatcher sharedDispatcher] removeDelegate:self];
    [super onExit];
}
Run Code Online (Sandbox Code Playgroud)

这样,清理时对象将完全可释放.