現在、画像シーケンス(jpgとpngのOHPフィルム)を使用して多数のアニメーションを持つiPhoneゲームを開発中です。インストゥルメントを使用してリークとオブジェクトの割り当てを表示すると、オブジェクト割り当てが増えたと見たことのほとんどは500k未満です。しかし、ゲームのあるレベルから別のレベルに切り替えると、プログラムはクラッシュし、予期せず終了します。これは異常ですか?私が読んだことから、iPhoneには128Mbのメモリが搭載されています。画像シーケンスを使用したiPhoneゲームのアニメーションに関するメモリの問題
詳細情報: 私たちはCAKeyFrameAnimation(Appleが推奨)とimageNamed(画像がプリキャッシュされるように)を使用しています。各レベルオブジェクトで、レベルを交換して別のレベルを読み込むと、deallocが呼び出されることがわかります。しかし、メモリは増え続けているようで、決して元のレベルに戻ることはありません。 =(
私は、リークでUIImageをリリースした直後にメモリ使用量が低下しないことに気付きました。おそらく、内部キャッシュなどがありますか?私もこれを理解することが好奇妙です。 –
はいimageNamedコマンドはイメージをキャッシュすることになっています。これが私たちが望む機能です。しかし、500kで死ぬことは私にとっては正しいとは思わない。 レベルをアンロードした後もUIImagesが完全に消去されているといいでしょう。 コード内でアニメーションをどうやってやっていますか? UIImageViewのanimationImagesプロパティを使用していましたが、Appleによって、バグがあり、決してイメージを公開していないことがAppleから伝えられました。 CAKeyframeAnimationを代わりに使用するようにアドバイスしました。 –
実際に私はアニメーションをやっていません - ちょうどインターネットからダウンロードしたむしろ大きな画像を表示するだけです。実際、私はimageNamed:ではなくimageWithData:で画像を作成していますので、私の場合はキャッシングを行っていることに驚いています。 –