CCParticleSystemQuand未解除分配

时间:2013-06-02 07:47:34

标签: cocos2d-iphone nsmutablearray automatic-ref-counting ccparticlesystem

我想做一件非常简单的事,但它不起作用。我想在NSMutableArray中添加一些CCParticleSystemQuad并删除它们。这是我的工作:

int cpt = 0;
NSMutableArray *myArray = [[NSMutableArray alloc] init];
for (cpt = 0; cpt < 10; cpt++) {
    part = [CCParticleSystemQuad particleWithFile:@"whiteExplosion.plist"];
    [myArray addObject:part];
}

NSLog(@"state of myArray : %@", myArray);

int cont = 0
for (cont = 0; cont < 10; cont++) {
    [myArray removeLastObject:cont];
}

NSLog(@"state of myArray : %@", myArray);

当我第一次使用NSLog时:

state of myArray : (
    "<CCParticleSystemQuad = 0x91ee380 | Tag = -1>",
    "<CCParticleSystemQuad = 0x84aca20 | Tag = -1>",
    "<CCParticleSystemQuad = 0x125136c0 | Tag = -1>",
    "<CCParticleSystemQuad = 0x125b0fc0 | Tag = -1>",
    "<CCParticleSystemQuad = 0x1250d480 | Tag = -1>",
    "<CCParticleSystemQuad = 0x1250fa50 | Tag = -1>",
    "<CCParticleSystemQuad = 0x9108840 | Tag = -1>",
    "<CCParticleSystemQuad = 0x9152b70 | Tag = -1>",
    "<CCParticleSystemQuad = 0x914fb80 | Tag = -1>",
    "<CCParticleSystemQuad = 0x9135470 | Tag = -1>"
)

我第二次拥有这个:

state of myArray : (
)

因此,您可以看到我的CCParticleSystemQuad已被删除。但是,当我检查仪器(分配)时,他们仍然活着(我还有20个人仍然活着[CCParticleSystemQuad allocMemory])并且仍然没有使用内存。我错过了什么?顺便说一句,我使用ARC。 我尝试使用(NSString *)对象,它工作正常... Thx。

2 个答案:

答案 0 :(得分:0)

[myArray removeLastObject:cont];

您正在尝试从数组中删除一个int。您想使用removeLastObject(无params)或removeObjectAtIndex:

您的问题可能是您没有调用removeChild:particle

答案 1 :(得分:0)

您必须从其父级中删除它,而不仅仅是从数组中删除它。

 [part removeFromParentAndCleanup:YES];

//从数组中删除对象

for (int i = 0; i < [myArray count]; i++) {
        [myArray removeObjectAtIndex:i];
}

//仅删除最后一个对象

        [myArray removeObjectAtIndex:([myArray count]-1)];