假设我获得了播放器的CCSprite,然后是健康栏的另一个CCSprite。
运行状况CCSprite是播放器CCSprite的子代。
出于某些原因,我决定保留健康栏,例如
[healthBarSprite retain];
我的问题是:由于我保留了健康栏,我应该运行
[healthBarSprite release];
在某些时候,对吧?
这是一件事:健康栏被保留,但玩家精灵不是。所以我发布的唯一内容就是健康吧?
如果玩家精灵实际上被保留了,在释放它时,健康栏是否会自动释放,或者我必须首先释放它然后播放器?
答案 0 :(得分:1)
是的,您必须将发布内容发送到健康栏。玩家精灵是否会释放健康栏并不是您需要担心的事情;如果它释放它,意图是平衡它在内部产生的保留。您需要担心的是平衡您所做的保留调用。
为了说明,播放器精灵很可能会在添加子节点时保留其子节点,并在删除它们时将其释放,但无论如何,这都是CCSprite的实现细节。它会担心平衡它所做的保留呼叫,而你担心平衡你的呼叫。