0

私は iPhone 用のゲームをプログラミングする Xcode のスプライト キットの初心者です。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]]];
    }
}
4

1 に答える 1

1

ここで定義した静的変数でそれへの強い参照を保持しているため、アクション_EmitterShatterApartを呼び出した後に割り当てが解除されることはありません。removeFromParent

SKEmitterNode *_EmitterShatterApart; 
于 2014-07-19T20:24:46.877 に答える