Iphone 如何在保存新对象之前检查对象是否已在数据库中?

Iphone 如何在保存新对象之前检查对象是否已在数据库中?,iphone,cocoa-touch,core-data,Iphone,Cocoa Touch,Core Data,示例:我有一个朋友列表,我从web服务器以XML的形式检索这些朋友。在设备上,我想在本地存储具有更新功能的朋友。但我只想储存新朋友。为了简单起见,我只根据他们的名字来区分他们(是的,那很糟糕!) 当XML解析器遍历XML时,它会为所有好友生成托管对象,并将它们挂起到托管对象上下文中。但在我保存上下文之前,我想清除数据库中已经存在的所有“新”朋友。目前我有: NSEntityDescription *entityDescription = [NSEntityDescription entityFo

示例:我有一个朋友列表,我从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];

问题可能是:它会在整个托管对象上下文中找到好友,也会在数据库中找不到的好友。如何确保只保存真正新的内容,并在保存前将重复内容扔掉?

使用唯一ID。为其向好友实体添加属性。例如,它可能是web数据库中的主键