我是一个初学者,用Xcode的sprite-kit为iPhone编写了一个游戏。我的SKEmitterNode出了点问题。具体地说,尽管我使用的是removeFromParent SKAction,但每次添加以下SKEmitterNode时,似乎都会发生无限的内存泄漏。有人有解决这个问题的办法吗?谢谢
SKEmitterNode *_EmitterShatterApart;
...
-(void)ShatterApart
{
SKAction *fadeaway = [SKAction fadeOutWithDuration:0.5];
SKAction *removeFromParent = [SKAction removeFromParent];
_EmitterShatterApart = [NSKeyedUnarchiver unarchiveObjectWithFile: [[NSBundle mainBundle] pathForResource:@"ShatterApart" ofType:@"sks"]];
_EmitterShatterApart.position = _NodePlayer.position;
if (!_EmitterShatterApart.parent) {
[_bgLayer addChild:_EmitterShatterApart];
_EmitterShatterApart.userInteractionEnabled=FALSE;
[_EmitterShatterApart runAction: [SKAction sequence:@[fadeaway,removeFromParent]]];
}
}发布于 2014-07-20 04:24:47
在调用removeFromParent操作之后,_EmitterShatterApart不会被释放,因为您在此处定义的静态变量中保留了对它的强引用:
SKEmitterNode *_EmitterShatterApart; https://stackoverflow.com/questions/24844106
复制相似问题