Пример: у меня есть список друзей, которых я получаю в виде 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];
Проблема, вероятно, заключается в том, что он найдет друзей во всем контексте управляемого объекта, а также тех, которых еще нет в базе данных. Как я могу убедиться, что я сохраняю только те, которые действительно новые, и выбрасываю дубликаты перед сохранением?