Core Dataモデルには、3つのエンティティがありA、Bおよび/またはとの関係を持つことができCます。ABC
特定の理由Bで、sコンテキストの子コンテキスト(両方とも同じ子コンテキストCを共有します)で作成されています。したがって、 1つの子コンテキスト(およびによって使用される)を持つ1つの親コンテキスト(によって使用される)があります。AABC
今私はする必要があります
- すべてをフェッチし
A、 Bすべてのs(またはs)をフェッチしますC。
私はMagicalRecordを使用してCoreDataと対話しているので、(1)は非常に簡単に実現できます。
NSArray *all_As = [A findAll];
(2)を達成するために、私は今、私が知っているAコンテキストを使用することができます:
NSManagedObjectContext *contextOfA = a.managedObjectContext
ここaで、はのインスタンスですA。私のアプリの設計方法により、すべてのインスタンスaを取得するために使用できるが常に存在することに注意してください(つまり、アクセスする必要はなく、アクセスする必要もありません)。上記のように、と(および)の間に関係がある必要はありません。結局、存在する必要すらありません(そして存在しなくても生きることができます)。BCBCAABCabca
しかし、私はそれを知ってBおり、の子の文脈でC生きています。A
したがって、基本的には、a.managedObjectContextの子コンテキストを取得し、その子コンテキストでフェッチ要求を実行する必要があります。
NSArrray *all_Bs = [B findAllInContext: a.managedObjectContext.childContext]
しかし、どうすればアクセスできますa.managedObjectContext.childContextか?