В модели ядра данных существуют три Сущности A
, B
и C
где A
может иметь отношение к B
и/или C
.Получить все дочерние контексты в NSManagedObjectContext
По некоторым причинам B
и C
создаются в контексте ребенка (они оба разделяют же ребенок контекст) в A
сек контексте. Таким образом, существует один родительский контекст (используется A
) с один детский контекст (используется B
и C
).
Теперь мне нужно
- получать все
A
с и - выборки всех
B
с (илиC
с).
Я использую MagicalRecord взаимодействовать с CoreData, так (1) довольно легко достичь:
NSArray *all_As = [A findAll];
Для достижения (2), теперь я мог использовать, что я знаю A
«s контекст :
NSManagedObjectContext *contextOfA = a.managedObjectContext
, где a
является экземпляром A
. Обратите внимание, что из-за того, как мое приложение было разработано, всегда есть a
, который может быть использован для получения всех B
экземпляров C
(другими словами: мне не нужно обращаться к B
и C
без A
). Как указано выше, между A
и B
(и C
) не должно быть связи. В конце концов, a
не обязательно должен существовать (b
и c
могут жить без a
).
Но я знаю, что B
и C
живут в детском контексте A
.
Поэтому в основном я просто нужно получить контекст ребенка a.managedObjectContext
«s и выполнить запрос выборки на этом детском контексте:
NSArrray *all_Bs = [B findAllInContext: a.managedObjectContext.childContext]
Но , как я могу получить доступ a.managedObjectContext.childContext
?
К сожалению, это не возвращает желаемый результат. Я думаю, это из-за того, как я спасаю объекты (см. Пояснения в моем оригинальном посте). Что касается вашего второго предложения, как узнать детальный контекст объекта после перезапуска приложения? Я имею в виду, что в этой ситуации я не могу создать ссылку, потому что я не знаю, что сказать, не так ли? – Patrick
Я изначально не использовал MR, но реализовал его после борьбы с iCloud в сочетании с Core Data. MR упрощает этот материал. Но даже простые задачи, такие как получение всех объектов, намного проще с использованием MR. – Patrick
Я сделал это? Тогда я неправильно понял ваше предложение, сожалею об этом. Я буду отмечать ваш ответ как принятый. – Patrick