我正在从JSON填充数据的实体,说它是Photographer
和Photo
。两者都有一些数据,我使用循环填充并管理ObjectContex
..
像这样,
NSMutableArray *ArrPhotographer= [[self.M3Arr objectForKey:@"LifeMag"]objectForKey:@"Photographer"];
for (int i = 0; i< ArrPhotographer.count; i++) {
Photographer * photographerObj = [NSEntityDescription insertNewObjectForEntityForName:@"PhotographerData"
inManagedObjectContext:[self managedObjectContext]];
NSMutableDictionary *tpDict = [cleanerListArr objectAtIndex:i];
photographerObj.cleanerName = [tpDict objectForKey:@"photographerName"];
}
现在我已经为摄影师和照片实体做了这个,并且根据这张图片,我的杂志实体正在拥有此表中已存在的数据。如图所示,我与杂志的摄影师和摄影师建立了一种关系。
现在问题是,
如果表格中已存在摄影师姓名,我该如何将其与杂志实体连接。我需要该特定位置的托管对象参考。
(例如,有三位摄影师,Ron,Harry和Sunny现在为Photo Cover1我想要Ron的名字。然后我需要Ron的对象参考,当我预先填充它时。)
如何获取此对象参考?
// ****************编辑
我得到对象存在...但是没有如何获取对象和2)如何将它赋予上述x和y?
I am using this code to saving the data in Magazine
Magazine *magObj = [NSEntityDescription insertNewObjectForEntityForName:@"Magazine"
inManagedObjectContext:[self managedObjectContext]];
magObj .issueID=[NSNumber numberWithInt:1];
magObj .photo= x;
magObj .photographer = y;
####编辑2
NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"Cleaner"];
[request setPredicate:[NSPredicate predicateWithFormat:@"cleanerName = %@", @"Robin"]];
[request setFetchLimit:1];
NSUInteger count = [[self managedObjectContext] countForFetchRequest:request error:nil];
if (count == NSNotFound){
NSLog(@"ERROR FOund");
}
// some error occurred
else if (count == 0){
NSLog(@"no matching object");
}
// no matching object
else{
NSLog(@"Found Match");
}
答案 0 :(得分:1)
您需要使用NSFetchRequest
搜索上下文以查找要连接的相应对象。获取请求指定要搜索的实体类型,您需要添加NSPredicate
以将结果过滤为您感兴趣的特定名称。
请注意,您可以使用名称列表运行单个提取请求,这样您只需在数据存储中获取一次信息,然后在对象创建/连接循环期间使用返回的列表。
如果您一次性加载所有数据,则可以创建一个包含托管对象实例的字典,以便您可以在不提取的情况下链接到它们。