2011-07-21 9 views
2

メモリを解放しない管理オブジェクトに問題があるようです。私は新しい情報をダウンロードし、それを一時的なコンテキストに保存した後、それを主なコンテキストにマージするNSOperationを持っています。すべてこれはうまくいくが、割り当ての仕組みでは、マージが完了して操作全体が割り当て解除された後に、新しく作成されたプロパティがすべてメモリにスティックされます。これを修正する方法はありますか?私は、tempとmainコンテキストとrefreshObject:の両方をリセットしようとしましたが、両方ともこれを修正しません。 ありがとう!コアデータで管理されているオブジェクトのプロパティの保持

+0

コードを見ずにデバッグするのは面倒です。シミュレータでメモリ警告をシミュレートするとどうなりますか?また、コンテキストにUNDOマネージャを使用していますか? – Drewsmits

+0

管理対象オブジェクトを追加するための標準コードです。メモリ警告は割り当てられたオブジェクトをクリアしませんし、コンテキストの元に戻すマネージャはnilに設定されます – Mathew

答えて

1

操作mainNSAutoreleasePoolという最初のものを必ず作成してください。メインから戻る前に必ずdrainプールを確認してください。これには、ifステートメントの内部など、メソッドが終了する前のリターンが含まれます。

+0

アドバイスありがとう、私はこれを無駄にしようとしたことを忘れていました。それは、オブジェクトではなく、リリースされていないオブジェクトのプロパティだけです。私はこれらを自分自身に割り当てておらず、財団によって作成されています。 – Mathew

関連する問題