2009-06-03 5 views
3

現在、画像シーケンス(jpgとpngのOHPフィルム)を使用して多数のアニメーションを持つiPhoneゲームを開発中です。インストゥルメントを使用してリークとオブジェクトの割り当てを表示すると、オブジェクト割り当てが増えたと見たことのほとんどは500k未満です。しかし、ゲームのあるレベルから別のレベルに切り替えると、プログラムはクラッシュし、予期せず終了します。これは異常ですか?私が読んだことから、iPhoneには128Mbのメモリが搭載されています。画像シーケンスを使用したiPhoneゲームのアニメーションに関するメモリの問題

詳細情報: 私たちはCAKeyFrameAnimation(Appleが推奨)とimageNamed(画像がプリキャッシュされるように)を使用しています。各レベルオブジェクトで、レベルを交換して別のレベルを読み込むと、deallocが呼び出されることがわかります。しかし、メモリは増え続けているようで、決して元のレベルに戻ることはありません。 =(

+0

私は、リークでUIImageをリリースした直後にメモリ使用量が低下しないことに気付きました。おそらく、内部キャッシュなどがありますか?私もこれを理解することが好奇妙です。 –

+0

はいimageNamedコマンドはイメージをキャッシュすることになっています。これが私たちが望む機能です。しかし、500kで死ぬことは私にとっては正しいとは思わない。 レベルをアンロードした後もUIImagesが完全に消去されているといいでしょう。 コード内でアニメーションをどうやってやっていますか? UIImageViewのanimationImagesプロパティを使用していましたが、Appleによって、バグがあり、決してイメージを公開していないことがAppleから伝えられました。 CAKeyframeAnimationを代わりに使用するようにアドバイスしました。 –

+0

実際に私はアニメーションをやっていません - ちょうどインターネットからダウンロードしたむしろ大きな画像を表示するだけです。実際、私はimageNamed:ではなくimageWithData:で画像を作成していますので、私の場合はキャッシングを行っていることに驚いています。 –

答えて

1

この質問は助けDispelling imageNamed FUDのものであってもよい。

あなたはノエルLlopisで(gamesfromwithin.comで最後のいくつかの記事をチェックすることをお勧めします128メガバイトを持つiPhoneについて)あなたがしているRAMの実際の量について

+0

乾杯、ちょうどそのページを読んでください。 ああ、私は実際にあなたが実際に遊ぶためにすべての128MBを取得していないことを知っていた。私が今夜読んだことから、あなたはおおよそ22MBを得る。 別のフォーラムで返信しましたが、間違ったツールを使用している可能性があります。明日、 "記憶や活動の道具"をチェックしようとしています。 –

+0

この記事は素晴らしいです:http://gamesfromwithin.com/?p=428 –

+0

Btw、リンクbarogに感謝します。 アクティビティモニターでテスト済みです。記憶は屋根を通っていた! 30MB + これは、CAKeyFrameAnimationとimageWithContentsOfFileを使用して、36フレームのjpgフルスクリーンイメージで行われました。 私は今、その特定のアニメーションを殺しました。私たちは、ボタンの上にオーバーレイされたサブビューを持つムービーを使用して調べています。私たちはそれらを持っているときに結果を投稿します。 –

0

あなたはそれの自動解放を使用することができ、明示的に関数を呼び出すことで、未使用のイメージビューを解放してイメージの割り当てを低くし、dellac関数を呼び出すときにdellocを呼び出すときに明示的にrelaeseingメモリのほとんどがこの1つを試してみてください。

ありがとうございました

関連する問題