아주 간단한 일을하고 싶지만 작동하지 않습니다. NSMutableArray에 CCParticleSystemQuad를 추가하고 삭제하고 싶습니다.CCParticleSystemQuand가 할당 해제되지 않았습니다.
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.
그것은 여전히 작동 사는 내 개체가없는 제거 배열
//에서 개체를 제거합니다. addChild를 호출하지 않은 경우 removeChild를 호출해야하는 이유는 무엇입니까? 그래서, 잘 이해한다면 메모리에서 CCParticleSystemQuad를 추가하고 제거하고 싶을 때 항상 [self addChild : part]와 [self removeChild : part]를 사용해야합니다. 이게 NSString * 객체로 작동하는 이유는 무엇입니까? 왜냐하면, 메모리에서 그것을 제거하기 위해 NSString을 추가 할 필요가 없었습니다 ... – Niknolty
어떤 레이어/노드에 추가되지 않은 경우 왜 cocos2d 입자 객체를 만들까요? 나는 u가 추가 된 것을 생각했다. 그래서 제거 할 것을 제안했다. 좋아 LearnCocos2d 이미 배열에 int 추가에 대한 실수를 언급했다 .. 해피 코딩. – Guru
Thx에 대한 조언. 그러나 배열로 저장하는 것이 왜 실수입니까? – Niknolty