3

写真を撮ってに保存した後、アプリ(arc、ios5)がクラッシュすることがありますCoreData。Using Instrumentsクラッシュの前にメモリ警告があることがわかったので、メモリがどのように使用されているかを調べてみました。

私のアプリは旅行を CoreData (合計 200MB) に保存します。各旅行には数百のCLLocationオブジェクトと数十のUIImageオブジェクトがあります。

pushViewControllerで1 つの旅行の詳細を表示するたびに、メモリ使用量が増加します。しかし、popViewControllerの後、メモリ使用量は残ります。

いくつかの容疑者がいると思います:

  1. CoreData キャッシュですが、削除する方法がわかりません。
  2. popViewControllerの後に呼び出されたviewDidUnloadが見られなかったので、詳細ビューコントローラー;

いくつかのテストの後、viewDidUnloadを手動で呼び出してもメモリ使用量が残ることに混乱しました。

また、アプリのios5.0シミュレーターでメモリリーク計測器をテストしましたが、クリーンです。

4

2 に答える 2

1

まず、画像データの保存にコアデータを使用しないでください。iOS 5以降では、プロパティをチェックして、プロパティのファイルインスペクターで「外部ストレージを許可する」ことができます。ドキュメントディレクトリに画像を保存し、コアデータを使用して画像へのパスを保存することもできます。これらの画像をインターフェイスに表示するときは、NSCacheにキャッシュして、メモリ警告が表示され始めたときにこれらの画像を削除できるようにします。これらのイメージを管理するアプローチを変更すると、メモリ不足の警告中のメモリ応答に大きな影響があります。

于 2012-10-11T14:53:09.300 に答える
1

メモリの問題のため、coredata に画像を保存することはお勧めしません。ドキュメントフォルダーなどに保存できるかどうかを確認し、画像の名前/パスをコアデータに保存します。メモリの問題を解決する必要があるほとんどのケース。

画像を保存するこのCoreData ( iPhone 用)とCore Data - 画像の保存 (iPhone)に関するいくつかの投稿を次に示します。

于 2012-10-11T05:36:18.467 に答える