我是 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]]];
}
}
最佳答案
在调用 removeFromParent
操作后,_EmitterShatterApart
不会被释放,因为您在此处定义的静态变量中保留了对它的强引用:
SKEmitterNode *_EmitterShatterApart;
关于ios - 如何修复 SKEmitterNode 的内存泄漏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24844106/