У нас очень сложная модель данных ядра с достаточным количеством данных, чтобы гарантировать множественные модели сопоставления. У нас возникают проблемы с пониманием требований к созданию отношений, которые охватывают модели сопоставления. Код ниже - наша последняя попытка, когда мы пытаемся найти связанный объект в контексте назначения и установить связь. Теперь мы понимаем, что нам не нужны конкретные типы объектов и имена отношений, но мы просто пытаемся заставить это работать в небольшом масштабе с одной сущностью, прежде чем мы займемся другими 300 отношениями. ПОМОГИТЕ!!! Маркус Зарра, где ты? У кого-нибудь есть предложение?Комплексная перенос данных ядра с несколькими схемами сопоставления
Link to picture of the Data Model
Код для создания отношений ...
- (BOOL)createRelationshipsForDestinationInstance:(NSManagedObject *)dInstance entityMapping:(NSEntityMapping *)mapping manager:(NSMigrationManager *)manager error:(NSError **)error {
if ([mapping.name isEqualToString:@"ProductImageToProductImage"]) {
[super createRelationshipsForDestinationInstance:dInstance entityMapping:mapping manager:manager error:error];
NSArray *sources = [manager sourceInstancesForEntityMappingNamed:mapping.name destinationInstances:@[dInstance]];
NSArray *destinations = [manager destinationInstancesForEntityMappingNamed:@"ProductImageToProductImage" sourceInstances:sources];
NSManagedObject *sourceObj = [[sources objectAtIndex:0] valueForKey:@"product"];
if (destinations.count == 1) {
NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"Product"];
request.predicate = [NSPredicate predicateWithFormat:@"xID = %@",[sourceObj valueForKey:@"xID"]];
;
NSArray *result = [manager.destinationContext executeFetchRequest:request error:error];
if (result.count > 0) {
Product *destProduct = (Product *)[result objectAtIndex:0];
[dInstance setValue:destProduct forKey:@"product"];
}
} else if (destinations.count > 1) {
NSLog(@"multiple products for %@",sources);
}
}
return YES;
}
Хорошо, это немного поздно, но был ли это ответом на мой ответ? – Aderstedt