レベルと 2 つのボタンを備えた nsmutablearray があります。次のレベルにして、もう一度やり直してください。ユーザーが次のレベルに触れたときに objectAtIndex:indexCurrLevel+1 を設定すると、次のレベルが問題なくロードされます。しかし、ユーザーがもう一度試してみて、レベルを objectAtIndex:indexCurrLevel に設定しようとすると、アプリがクラッシュし、子が既に追加されているというエラーが発生しました。手動で設定した場合、元に再試行するため、それはクレイジーです。objectAtIndex:5 は、アプリがクラッシュしたため、ユーザーが 5 レベルでプレイしない限り、完全に機能します。
現在のレベルのインデックスとは異なるインデックスの場合、完全に機能します。(objectAtIndex:index - 動作) 手動でインデックスを設定すると、インデックスと同じ理由が得られました。
[self removeFromParentAndCleanup:YES];
Levels *l = [levels2 objectAtIndex:index-1];
Game *hl = [[Game alloc]initWithObstacles:[l staticO] :[l rotateO]:[l lvl]:[l level]:[l pendulumO]:self.levelsArray];
[hl setLevels2:self.levels2];
[hl setBasketY:[l basketY]];
[hl setBasketX:[l basketX]];
[l release];
[[CCDirector sharedDirector] replaceScene:(CCScene*) hl];
[hl configureLevel];
[hl release];
Eroor: -[Game addChild:z:tag:], ../libs/cocos2d/CCNode.m:388 2012-05-11 19:03:20.349 Game[932:10a03] でアサーション失敗* キャッチされないためアプリを終了例外 'NSInternalInconsistencyException'、理由: '子は既に追加されています。再度追加することはできません' *最初のスロー コール スタック: