そこで、Cocoaでドキュメントベースのアプリケーションを構築し、NSManagedObjectContextを理解しようとしています。Appleの「CoreDataBasics」を読みましたが、頭を悩ませることはできません。私のアプリケーションでは、カスタムCoreDataUtilityクラスを作成して、すべてのクラスが次のコード行を介してコンテキストを取得できるようにしました。
MyCoreDataUtility *coreData = [MyCoreDataUtility sharedCoreDataUtility];
NSManagedObjectContext *context = [coreData context];
このアイデアは「ココアは私のガールフレンド」というサイトから得ました。混乱するのは、アプリケーションを実行して新しいウィンドウを作成するときです(ファイル所有者クラスはNSPersistentDocumentのサブクラスです)。新しいウィンドウのコンテキストに変更を加えると、ビューには古いウィンドウの変更が反映されます。だけでなく、新しいもの。これに基づいて、両方のウィンドウが何らかの方法で同じコンテキストまたは少なくとも同じデータを参照していると想定しています。
だから私の質問は:
- 新しいウィンドウを作成するたびに新しいコンテキストが作成されると思いますが、これは正しいですか?
- 新しいコンテキストが作成され、それらが異なる場合(2つのコンテキストのメモリアドレスを実際に出力し、アドレスが異なる場合)、これは永続ストアコーディネーターまたは永続オブジェクトストアと関係があります(これらの概念は両方とも私の心の中で曖昧)?
- すべてのドキュメントが同じコンテキストを参照している場合、ドキュメントが作成されるたびに新しいコンテキストを作成するのは私の責任ですか?
皆さんありがとう!