1

前提条件: ネットワーク API に 2 つのメソッドがあります。

  • エンティティのリストを返す (名前、ID などの基本的な情報のみ)
  • エンティティに関する詳細情報を返す

要件は、2 番目の要求 (sqlite に保存) を処理して作成されたオブジェクトのみを保存し、完全でないオブジェクトは保存せずに残すことです。また、「メイン」コンテキストには最初のリクエストからの完全なオブジェクトのみを含める必要があり、他の「一時」コンテキストには他のすべてのオブジェクトを含める必要があります。

NSPersistentStoreCoordinator の 2 つのインスタンスを作成し、それらを異なるタイプのコンテキストに使用しようとしましたが、1 つの NSManagedObjectModel に対して 1 つのコーディネーターしか存在できないようです (ポインターは同じアドレスを指します)。

4

3 に答える 3

1

私があなたのことを正しく理解していれば、最善の選択肢は、管理対象オブジェクトを Core Data ストレージに永続化させたいと確信した場合にのみ作成することだと思います。「完全ではない」エンティティのデータを含めるために、管理されていないオブジェクトの別のレイヤーが必要になる場合があります

(これは、Java EE プログラミングのデータ転送オブジェクトのようなものです。)

于 2012-11-19T12:43:25.513 に答える
0

同じMOC内からむやみにセーブすることはできません。MOC を保存すると、常にその中のすべてが保存されます。

そのため、保存されることのない別の MOC を使用して、保存する準備ができたら、それらのオブジェクトをメインの MOC に「移動」することができます。

于 2012-11-19T15:23:40.820 に答える
0

私の問題を正確に解決する解決策は、コア データ スタックの 2 つの「フォーク」を作成することです。

  • デフォルトの構成と mainContext を持つもの
  • 2 番目 (同じ NSManagedObjectModel の新しいインスタンス、新しい NSPersistentStore (inMemory) および新しい NSPersistenStoreCoordinator )
于 2012-11-23T15:09:28.520 に答える