如何检索核心数据中实体的唯一关系

时间:2012-01-04 22:03:20

标签: iphone ios core-data entity nsfetchrequest

必须有一种更简单的方法来做到这一点。我有搜索和搜索,但似乎无法找到我要找的答案。

假设我们有这样的关系 EntityA< - >> EntityB

如果我创建2个EntityA实例,每个实例包含3个实体B实例。

在我的viewcontroller中显示每个EntityA的所有EntityB,它显示所有6个而不是与之相关的3个。

我可以正确显示的唯一方法是将指针从一个控制器传递到另一个控制器:

viewController2.entityA = viewController1.entityA;

然后按以下方式检索结果:

    NSMutableArray *result = [[NSMutableArray alloc] initWithArray:[entityA.entityBs allObjects]];

我的印象是,如果您最初获取父实体,则后续提取将基于该实体,而不是全部返回。

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:2)

尝试以下内容:

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *weightEntity = [NSEntityDescription entityForName:@"EntityB" inManagedObjectContext:[[yourCoreDataManager sharedInstance] managedObjectContext]];
[fetchRequest setEntity:weightEntity];
[fetchRequest setPredicate:[NSPredicate predicateWithFormat:@"EntityA.name LIKE %@", @"EntityAName"]];

NSError *error = nil;
NSArray *result = [[yourCoreDataManager sharedInstance] managedObjectContext] executeFetchRequest:fetchRequest error:&error];

这样,您只需要请求属于给定实体A的实体B.