示例:我有一个朋友列表,我从Web服务器检索为XML。在设备上,我想在本地存储具有更新功能的朋友。但我只想存储新朋友。为了简单起见,我只用它们的名字来区分它们(是的,这很糟糕!)。
当XML解析器遍历XML时,它会为所有朋友生成托管对象,并将它们挂起到托管对象上下文中。但在我保存上下文之前,我想摆脱已经在数据库中的所有“新”朋友。目前我有:
NSEntityDescription *entityDescription = [NSEntityDescription entityForName:@"Friend" inManagedObjectContext:context];
NSFetchRequest *request = [[[NSFetchRequest alloc] init] autorelease];
[request setEntity:entityDescription];
[request setPredicate:[NSPredicate predicateWithFormat:@"firstName == 'George'"]];
NSError *error = nil;
NSArray *array = [context executeFetchRequest:request error:&error];
问题是,可能是:它会在整个托管对象上下文中找到朋友,还有那些不在数据库中的朋友。我怎样才能确保我只保存那些真正新的东西,然后在保存之前抛弃重复的东西?
答案 0 :(得分:1)
使用唯一ID。为您的Friend实体添加一个属性。例如,它可能是Web数据库的主键。