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