Доступ к глубоким многим отношениям Core Data - PullRequest
2 голосов
/ 14 февраля 2012

Кажется, я не могу понять, как в последний раз получить доступ к слоям отношения ко многим в Базовых данных (новичок в БД).Все примеры являются простыми 2 сущностями отношения.Мои базовые данные выглядят так:

Entity_A
Attribute_AA
Attribute_AB
Relation_AB (для множества от entity_A до entity_B)

Entity_B
Attribute_BA
Attribute_BB
Relation_BA (много-к-от entity_B к entity_A)
Relation_BC (to-many от entity_B к entity_C)

Entity_C
Attribute_CA
Attribute_CB
Relation_CB (многозначный от entity_C к entity_B)

Мне удалось заполнить сущности и извлечь Entity_A в self.entity_A.Self.entity_A.relation_AB отображается как ошибки, но я узнал, что это нормально, и я могу NSLog значения в entity_B и entity_C как NSSets, используя следующие операторы:
NSLog (@ "Entity_B:% @", [self.entity_S.relation_AB valueForKey: @ "Attribute_BA"]);
NSLog (@ "Entity_C:% @", [[self.entity_A.relation_AB mutableSetValueForKey: @ "Relation_BC"] valueForKey: @ "Attribute_CA"]);

, который дает мне следующий вывод, который является правильными значениями, хранящимися в сущностях в моей базе данных:
Entity_B: {(directory1, directory2)}
Entity_C: {(file1, file2, file3)}, {(file4, file5, file6, file7)}
(directory1 / 2 и file1 / 2/3/4/5/6/7 - это просто значения, хранящиеся в соответствующем объекте в БД, например, ради)

Кажется, списки из NSSets не связаны, так как вы узнаете, какой файл в entity_C, с каким каталогом в entity_B и с каким объектом в entity_A?

Другой способ задать вопрос: как мне получить«self.entity_A.entity_B.directory1» (этот синтаксис можетне правильно), который содержит [file1, file2, file3] из приведенного выше примера и «self.entity_A.entity_B.directory2», который содержит [file4, file5, file6, file7]?

Спасибо за вашу помощь.
Хирен.

1 Ответ

0 голосов
/ 14 февраля 2012

Просто напишите метод построения NSMutableDictionary, перебирая значения Entity_B, устанавливая их в качестве ключей и устанавливая значения NSSets для соответствующих значений Entity_C.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...