4

Apple CoreData フレームワークのドキュメントから、

管理対象オブジェクト モデル:モデルにより、Core Data は、永続ストア内のレコードから、アプリケーションで使用する管理対象オブジェクトにマップできます。こちらを参照してください。

永続オブジェクト ストア:永続オブジェクト ストアは、アプリケーション内のオブジェクトと永続ストア内のレコードをマップします。こちらを参照してください。

これらの説明から、どちらも永続ストア レコードを管理対象オブジェクトにマッピングするという意味で同じです。

マネージド オブジェクト モデルと永続オブジェクト ストアの固有の違いを知りたいです。

4

2 に答える 2

5

マネージド オブジェクト モデルは、 Core Data アプリケーションで使用されるスキーマのインスタンスでNSManagedObjectModelあり、スキーマを記述します。 これは、Core Data Model インスペクタで定義した属性と関係を含むすべてのエンティティの説明を含むモデル ファイルからロードされます。したがって、モデルはオブジェクトを記述します。

永続オブジェクト ストアは、実際のデータが格納されるリポジトリである永続ストアNSPersistentStoreとの間のトランザクションを管理する のインスタンスです。多くの場合、永続ストアは SQLite ファイルですが、XML ファイル、バイナリ ファイル、または一時データの「メモリ内」ストアの場合もあります。

永続ストア コーディネーターは、管理対象オブジェクトをストアからアプリケーションにロードし、変更されたオブジェクトをストアに書き戻すために、NSManagedObjectModeland (1 つまたは複数) の両方を使用します。NSPersistentStore

于 2013-10-27T09:09:10.100 に答える
1

あなたの質問はかなり長くなりましたが、他の人がトピックを明確にして深く掘り下げるのに役立つ可能性があることは明らかな懸念事項です. したがって、Martin の回答から遠く離れてはいけませんが、さらに説明してください。

  • はい、永続ストアと永続オブジェクトストアはまったく別の問題です

    • しかしいいえ、永続オブジェクトストアは NSPersistentStore のインスタンスではありません。Persistent Store と同じように、Xcode によってアプリケーション内のオブジェクト / インスタンスと Persistent Store 内のコードの束 / ブロックの間のパス / 関係を自動的に宣言するクラスで構成される 1 つのファイルです。ハイパーリンクのファイルのように考えてください (ただし、それよりもはるかに複雑です)。
  • Persistent Store を「DataFile.xml / DataFile.sqlite / DataFile.customExtension など」と考えてみましょう。それらはファイルであるため、すべてのレコードはスクリプト、バイナリなどとして保存されます。例: < entityname > Transaction < /entity > OR < currency >USD< /currency > (スペースなし - Web サイトでこれらの追加が許可されていないため、申し訳ありません (<...>))

    • コンパイラ (この場合は XCode) は永続ストア (ファイル) にアクセス、読み取り、書き込みを行うことができますが、次の 2 つが必要です: (1) 「青写真」の「指示」に従って SCRIPT からオブジェクトにデコードする「トランスレータ」オブジェクト モデル、(2) 管理オブジェクト コンテキストと同様に、管理オブジェクトを格納する前に Xcode が操作する一時的な場所です - 永続オブジェクト ストアは同様の役割を果たしますが、代わりに SCRIPT & MODEL (管理オブジェクト モデルによって提供される) を使用します --> SO、THEY永続オブジェクト ストアの役割です。

実際のプログラミングでは、Persistent Object Store について考える必要さえありません。これは、XCode が行うすべての自動プロセスです。特定の概念や特定のステーク (コア データ スタック内) ではなく、抽象的なコンピューティング プロセスです。

コア データに関する Apple のガイドを参照 (2011 年 10 月 - かなり古いが、アクティブなまま) https://developer.apple.com/library/prerelease/content/documentation/DataManagement/Devpedia-CoreData/persistentObjectStore.html#//apple_ref/ doc/uid/TP40010398-CH31-SW1

--> 「永続オブジェクト ストアを直接作成するわけではありません。代わりに、addPersistentStoreWithType:configuration:URL:options:error: メッセージを永続ストア コーディネーターに送信すると、Core Data が適切なタイプのストアを作成します。」

これがお役に立てば幸いです。

于 2016-09-12T06:41:35.047 に答える