From the daily archives: 日曜日, 10月 2, 2011

CoreDataに大量のデータを追加するとき、メモリに気をつけてあげないとすぐメモリ不足になってしまいます。
しかし、CoreDataのManagedObjectは解放したいと思ったタイミングではなかなか解放してくれません。

メモリ解放するにはちょっとした手順が必要となります。

  1. 新しくManagedObjectContextを作る
  2. ManagedObjectをひとつ追加→保存する
  3. ManagedObjectContextのresetを呼ぶ(メモリ強制開放)
  4. 2〜3を必要なだけ繰り返す
  5. 他のManagedObjectContextで作ったManagedObjectに保存結果をマージする

ちなみに、大量のデータを変更・処理する時なども手順は同じです。

Continue reading »