1

作業中のアプリでの自動解放プールとメモリの割り当て解除について質問があります。誰かがコードを見る必要があるなら、私はそれを投稿することができます。

何よりもまず、このアプリでARCを使用していますが、基本的には起動時にかなりのメモリを割り当てています(イントロアニメーションの画像)。それらが使用するメモリは、受信するまで適切に割り当て解除されないようです。何らかの理由でメモリ警告が表示された場合、またはバックグラウンドを入力してアプリのフォアグラウンドを再入力した場合。

私はコードと機器に割り当てられているメモリの量を監視しているので、この問題は誤検知ではないようです。UIImageView.animationImagesプロパティをnilに明確に設定し、UIImageViewをnilに設定して、アニメーションが完了したらその親ビューコントローラをメモリから解放するので、画像メモリを適切に破棄していることは事実です。基本的に、ARCがリリースする必要があることを確認するために、関係するものはすべてnilまたはremoveFromSuperviewに設定されます。

アプリのバックグラウンドに入ったり、メモリ警告を受け取ったりした結果と同様に、この自動解放されたメモリプールを削除する方法はありますか?

4

1 に答える 1

0

それを理解すると、イントロアニメーションに割り当てていたUIImagesはimageNamed:メソッドを介してキャッシュされていたため、しばらくの間自動リリースされた後も保持されていました。

これを修正するために、画像をキャッシュしないimageWithContentsOfFile:メソッドを使用しています。

于 2013-01-16T15:50:27.363 に答える