これが私が試したことです。
私のinitメソッドで、配列を初期化しました:
deleteSprites = [[NSMutableArray alloc] initWithCapacity:500];
これは、それらを配列に追加する方法です。
CCSprite *SpriteSave;
SpriteSave = [CCSprite spriteWithBatchNode:Batch rect:CGRectMake(0,0,6,6)];
[Batch addChild:SpriteSave];
[deleteSprites addObject:SpriteSave];
これは、スプライトを削除しようとする方法です。
delCount = 0;
while (delCount < [deleteSprites count])
CCSprite *delSprite = (CCSprite *) [deleteSprites objectAtIndex:delCount];
[delSprite.parent removeChild:delSprite cleanup:YES];
delCount++;
}
[deleteSprites removeAllObjects];
これにより、一部のスプライトが反転しますが、それらは引き続き画面に表示され、どれも削除されません。私はすでにどこでも調査しており、コードを他のコードと非常によく似たものにしましたが、それでもうまくいきません。また、メモリ管理のドキュメントを既に読んでいますが、何が間違っているのかまだわかりません。また、スプライトが表すはずのフィクスチャのユーザーデータにスプライトを追加しようとしましたが、フィクスチャが破棄されたときにもう一度スプライトを削除しようとしましたが、同じことが起こります。助けてください!。
私はそれが何であるかを理解しました。いくつかの if ステートメントで論理エラーを起こしていて、誤ってスプライトを 2 回追加してしまいました。ごめんね、みんな。