我想做一件非常简单的事,但它不起作用。我想在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。
答案 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)];