有一个主类,我想添加一些其他图层,当该图层做一些动画时,问题会在我同时需要该图层的几个副本时启动。 例如,我有一个在主当前图层之上进行爆炸动画的图层。 如果每次我使用它,我会复制它(实例分配),我将不得不在某个时候发布该副本,但我不能这样做:
explotionLayer *instance=[[explotion alloc]init];
[instance someFunction ];
[instance release];
因为someFunction
需要时间,当它结束时,正在执行instance
的其他一些函数 - 因此该实例之前无法释放。
如何在游戏过程中同时创建多个实例,并以某种方式管理如何在正确的时间释放它们 - 仅限于完成动画和其他任务时。
我知道我可以从该实例回调到主层中的一个函数来释放它 - 但这不是一个很好的强大方法。
答案 0 :(得分:0)
使用
[instance autorelease];
不,搞砸了。你应该真的是using ARC。您甚至不必再考虑这样的问题,而且泄漏的次数也会减少。
此外,如果将实例添加到节点层次结构中,cocos2d仍会保留它。
答案 1 :(得分:0)
请使用自动参考计数(ARC)。您需要做的就是在实例变量上定义正确的属性并迁移到ARC。 Framework将为您处理内存处理。