访问深层次的核心数据关系

时间:2012-02-14 02:31:29

标签: objective-c core-data

我似乎无法弄清楚如何在Core Data(DB newbie)中访问多对多关系的层次。所有例子都是简单的2实体关系。我的核心数据如下所示:

Entity_A
Attribute_AA
Attribute_AB
Relation_AB(从entity_A到entity_B的to-many)

Entity_B
Attribute_BA
Attribute_BB
Relation_BA(很多 - 从entity_B到entity_A)
Relation_BC(从entity_B到entity_C的to-many)

Entity_C
Attribute_CA
Attribute_CB
Relation_CB(从entity_C到entity_B的多个)

我已成功设法填充实体并将Entity_A提取到self.entity_A中。 self.entity_A.relation_AB显示为故障,但我已经知道这是正常的,我可以使用以下语句将entity_B和entity_C中的值作为NSSets进行NSLog:
    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”]);

它给了我以下输出,它是我db中实体中存储的正确值:
Entity_B:{(directory1,directory2)}
Entity_C:{(file1,file2,file3)},{(file4,file5,file6,file7)}
(例如,目录1/2和file1 / 2/3/4/5/6/7只是存储在数据库中相应实体中的值)

似乎NSSets中的列表没有链接,所以你怎么知道entity_C中的哪个文件与entity_B中的什么目录在entity_A中有什么东西?

另一种询问方式是如何获得包含上述示例中的[file1,file2,file3]和“self.entity_A”的“self.entity_A.entity_B.directory1”(此语法可能不正确)。 entity_B.directory2“包含[file4,file5,file6,file7]?

感谢您的帮助。
西仁。

1 个答案:

答案 0 :(得分:0)

只需编写一个方法来构建NSMutableDictionary,方法是遍历Entity_B的值,将其设置为键,并将值设置为NSSets的相应值Entity_C }。