如何检索核心数据中实体的唯一关系
问题描述:
必须有一种更简单的方法来完成此操作。我有搜索和搜索,但似乎无法找到我正在寻找的答案。如何检索核心数据中实体的唯一关系
比方说,我们有这样 EntityA <的关系 - >> EntityB
如果我创建为每个实体B的3个实例EntityA 2实例。
在我的viewcontroller中显示每个EntityA的所有EntityB,它显示全部6个而不是与它相关的3个。
我可以得到它,以正确显示的唯一途径是如果我通过指针从一个控制器到另一个:
viewController2.entityA = viewController1.entityA;
,然后检索以下面的方式的结果:
NSMutableArray *result = [[NSMutableArray alloc] initWithArray:[entityA.entityBs allObjects]];
我的印象是,如果您最初获取父实体,则后续提取将基于此而不是全部返回。
任何帮助,将不胜感激。
答
尝试类似如下:
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,通过entityA的实例的第二个视图控制器,然后使用它的entityBs属性来获取值(就像你在代码中一样)将是最好的方法来解决这个问题。 – 2012-01-04 22:23:38