3

iPad用のゲームを開発しています。iPad でゲームを実行し、iPad のライド シーン プレゼンスを実行すると、メモリ不足のためにアプリケーションが自動的に終了します。TexturePacker を使用して画像を pvr に変換しましたが、シーンからシーンへ移動するとメモリを解放できません。

[CCTextureCache sharedTextureCache] removeUnusedTextures];

[[CCSpriteFrameCache sharedSpriteFrameCache] removeUnusedSpriteFrames];

私はこれらの行を使用していますが、十分ではありません。

何か案が?

4

2 に答える 2

2

考えてください:

  1. インストゥルメント リーク ツールを使用します。同じ特定の瞬間 (たとえば、シーンを実行する準備ができたとき) にスナップショットを作成してみて、それらの間に何が割り当てられているかを確認してください。
  2. プログラムの特定の部分でアプリケーションが使用するメモリを印刷して、メモリがリークしている場所を見つけてください。
  3. シーンを削除してからさらに深く掘り下げたときに、呼び出されない解放ロックを見つけてください。
  4. 未使用の関数の代わりに一般的な関数を呼び出してみてください:

    [[CCSpriteFrameCache sharedSpriteFrameCache] removeSpriteFrames]; [[CCTextureCache sharedTextureCache] removeAllTextures];

于 2012-11-21T11:43:56.627 に答える