3

我想我可能会在我的代码中造成错误,因为我不清楚 cleanup: 部分 removeChild:cleanup: cocos2d ccnode 类的方法。

谢谢。

4

2 回答 2

7

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

- (void) onExit{
    [[CCTouchDispatcher sharedDispatcher] removeDelegate:self];
    [super onExit];
}

这样,当您清理时,该对象将完全可释放。

于 2012-06-23T03:27:14.707 回答
1

cleanup 基本上指定是否应该清理该特定节点的正在运行的操作,基本上,如果它设置为 YES,则被删除的对象将停止所有正在运行的操作并取消调度所有选择器。

于 2012-06-23T03:25:31.923 回答