2013-05-10 20 views
6

私のアプリケーションでCoreDataを使用しています。永続ストアタイプはNSInMemoryStoreTypeです。NSManagedObjectContext save:in-memory storesを呼び出す必要がありますか?

このタイプの店舗でNSManagedObjectContext save:に電話する必要はありますか?​​をNSManagedObjectContextに渡すと、実際に何かのメモリ内の店舗はありますか?

Apple's documentationは単に状態:保存


試みは、彼らの永続ストアに登録されたオブジェクトへの未保存の変更をコミットします。

インメモリストアのコンテキストで実際にはどういう意味ですか?

+1

+1、非常に良い質問。コンテキスト内で作成されたすべてのオブジェクトがpersistentStoreに移動され、メモリのフットプリントが減少すると思ってコンテキストを保存しました。 – Anupdas

答えて

3

私はドキュメントを見つけることができませんでしたが、私はそれがまだ必要であると確信しています。

Core Dataには、メモリ内フロントエンド(管理対象オブジェクトコンテキストで表される)と永続バックエンド(「ストア」)があります。永続的なバックエンドは通常はファイルですが、メモリ内にはNSInMemoryStoreTypeのためだけ存在します。

すべての機能を動作させるには、2つの部分を分離し、save操作でフロントエンド(変更が保留中)からバックエンド(固定データ)にプッシュする必要があります。

同じストア(バックエンド)の管理対象オブジェクトのコンテキスト(フロントエンド)がいくつかあり、それぞれに保留中の変更があります。すべての管理オブジェクトコンテキストにhasChangesNSUndoManagerのようなメソッドがあることに注意してください。これはインメモリストアでも動作します。

いくつかの情報もhere

1

​​は、属性と関係制約の検証を実行します。

関連する問題