2011-12-21 15 views
0

UIPickerViewのようなUIオブジェクトが割り当てられ、頻繁に解放され、対応するdeallocメソッドが呼び出されても(Instrumentsを使用して証明された場合)、ヒープはまだ成長しています。iOS - メモリのクリーニングをトリガする方法はありますか?

シナリオ全体を改善するために自動解放プールの最適化をトリガーする方法はありますか?

私のアプリケーションは写真を撮ったり、写真を管理したり、サーバーにアップロードする必要があります。時間の経過とともに、ヒープは大きくなり、最後にアプリケーションがクラッシュします。 **私は楽器を使用して明らかなメモリリークがないことを確認しました*

ご意見やご提案はありますか?

ありがとうございました。

+0

現在ARCを使用していますか? –

+0

ARC機能を使用してください。古いスタイルをARC環境に変換するためにXcodeに屈折計メニューがあります。 – Sakares

答えて

0

アプリケーションに合った場所に独自の自動解放プールを作成することができます。自動解放プールを作成する次の方法は、ARCの有無に関係なく動作します。

// Stuff you plan to keep around after finishing the block below 
@autoreleasepool { 
    // Load an image, send to server 
} 
// The images are released 

メモリが手に入らないように時間がかかるようです。メインUIの実行ループで作業している場合は、定期的にautoreleaseを実行する必要があります。そのため、別の自動解放プールが役立つかどうかはわかりません。おそらく、あなたはまだそれらを使用することができるので、彼らがリリースされていないような方法であなたの参照を維持している。オブジェクトが配列、セット、および辞書から削除されないため、多くのリークが発生します。

関連する問題