同じスレッド内で複数のコンテキストを使用する (または回避する) ためのルールを強調できる簡単な答えを探しています (私の場合はメインのコンテキスト)。
通常、Core Data では、アプリケーション全体で使用される単一のメイン コンテキストを設定します。次に、バックグラウンド作業を実行する必要がある場合は、実行するバックグラウンド操作ごとにコンテキストを作成します。
このようなアプローチは、ほとんどの場合有効です。Core Data はメモリを完璧に管理します。しかし、オブジェクト グラフの一部を (メモリ フットプリントを管理して) 明示的に削除することもできます。ここでは、 paramに- (void)refreshObject:(NSManagedObject *)object mergeChanges:(BOOL)flag
渡すことに頼ることができます。NO
ただし、保留中の変更が失われる可能性があることに注意する必要があります。
さて、私の質問は次のとおりです。1 つのスレッド (メイン スレッド) 内で使用できるコンテキストの数を決定できる経験則はありますか? 私の考えは以下です。メイン コンテキスト (変更が保存される場所) と、表示目的でのみ使用され、オンデマンドで作成される追加のコンテキストを作成します。使い終わったら、 を送信しreset
てメモリ全体をリサイクルすることができます。
何かアドバイス?新しい iOS 5 API に何らかの影響がある場合は、共有してください。