Базовые данные - облегченные миграции и файлы с несколькими базовыми моделями данных (xcdatamodel)

У меня проблема с выполнением упрощенной миграции при переносе из хранилища, которое определяется двумя отдельными файлами xcdatamodel.

В версии 1.0 моего приложения модели были разбиты на аналитическую модель Model-A и все остальное в Model-B. При компиляции модели будут сгруппированы, и все пройдет гладко.

Работая над новой версией 1.1, я обновил модель-B, добавив новую версию модели в модель-B и установив эту новую версию как активную.

Проблема возникает при обновлении с 1.0 до 1.1. Похоже, что Core Data проверяет хранилище моделей на диске (созданное в версии 1.0) и ищет модель, которая описывает ее, но не может найти ЕДИНСТВЕННУЮ модель, которая определяет весь магазин (модель A охватывает только аналитику, а модель B покрывает все остальное), поэтому он выбрасывает "Не могу найти модель для магазина с исходным кодом" & quot; ошибка.

Кто-нибудь нашел решение для разделения моделей, но все же позволяющее работать с обновлениями и облегченными миграциями без лишних хлопот по определению пользовательских миграций?

Вот фрагмент кода, используемый для загрузки моделей:

    NSArray *modelNames = [NSArray arrayWithObjects:@"model-A", @"model-B", nil];
    NSMutableArray *models = [NSMutableArray array];
    for (NSString *name in modelNames)
    {
        LogInfo(@"loading model %@", name);
        NSURL *modelURL = [[NSBundle mainBundle] URLForResource:name withExtension:@"momd"];
        NSManagedObjectModel *model = [[[NSManagedObjectModel alloc] initWithContentsOfURL:modelURL] autorelease];
        [models addObject:model];
    }

    // combine all the separate models into one big one
    objectModel = [[NSManagedObjectModel modelByMergingModels:models] retain];

    NSURL *documentsDirectory = [NSURL fileURLWithPath:[SuperFileManager documentsDirectory] isDirectory:YES];
    NSURL *storeURL = [documentsDirectory URLByAppendingPathComponent:@"database.sqlite"];
    NSError *error = nil;

    coordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:objectModel];
    NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys:
                                                  [NSNumber numberWithBool:YES], NSMigratePersistentStoresAutomaticallyOption,
                                                  [NSNumber numberWithBool:YES], NSInferMappingModelAutomaticallyOption,
                                                  nil];

    if (![coordinator addPersistentStoreWithType:NSSQLiteStoreType
                                   configuration:nil
                                             URL:storeURL
                                         options:options
                                           error:&error])
    {
        NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
        abort();
    }

Ответы на вопрос(4)

Ваш ответ на вопрос