それは少し単純な問題ですが、私はそれを理解することができませんでした。
1->アプリケーションの開始(MainMenuシーンを使用)
2->開始(サブレベルのシーンが置き換えられます)
3->最初のレベルを選択します(Level1Sceneが置き換えられます。ゲームが開始されます。)
4->メインメニューに戻ります。(MainMenuシーンが置き換えられます)
5->開始(サブレベルのシーンが置き換えられます)
6->第1レベルを選択
7->クラッシュ。
box(32842,0x3f5c9d98)malloc:*オブジェクト0x4bed44のエラー:解放されたオブジェクトのチェックサムが正しくありません-オブジェクトは解放された後に変更された可能性があります。*デバッグするmalloc_error_breakにブレークポイントを設定します
シーンaからbを置き換えると、リリースされますか?
私の知る限り、pushSceneだけがシーンをメモリに保持します。
+(CCScene *) scene {
CCScene *scene = [CCScene node];
HelloWorldLayer *layer = [HelloWorldLayer node];
[scene addChild: layer];
return scene;
}
シーンとレイヤーは自動解放オブジェクトです。replaceSceneが呼び出されたときに解放する必要があります。(シーンの置き換え中に前のシーンが解放された場合。)