Ответ 1
Лучшим решением в моем опыте является наличие нескольких контекстов управляемых объектов, каждый из которых имеет свою собственную модель.
Однако есть способ выполнить то, что вы хотите:
// create the store coordinator
NSPersistentStoreCoordinator *storeCoordinator = [[NSPersistentStoreCoordinator alloc] init];
// create the first store
NSPersistentStore *firstStore = [storeCoordinator addPersistentStoreWithType: NSIncrementalStore configuration:nil URL:urlToFirstStore options:optionsForFirstStore error:&error];
// now create the second one
NSPersistentStore *secondStore = [storeCoordinator addPersistentStoreWithType:NSSQLiteStore configuration:nil URL:urlToSecondStore options:optionsForSecondStore error:&error];
// Now you have two stores and one context
NSManagedObjectContext *context = [[NSManagedObjectContext alloc] init];
[context setPersistentStoreCoordinator:storeCoordinator];
// and you can assign your entities to different stores like this
NSManagedObject *someObject = [[NSManagedObject alloc] initWithEntity:someEntity insertIntoManagedObjectContext:context];
// here the relevant part
[context assignObject:someObject toPersistentStore:firstStore]; // or secondStore ..
Вы также должны проверить эти ссылки, чтобы лучше понять, как работают Core Data:
Руководство по программированию основных данных - Координатор постоянных хранилищ
SO: Возможны два постоянных хранилища для одного контекста управляемого объекта?
Также проверьте комментарий TechZen во второй ссылке о конфигурациях и прочитайте об этом здесь:
Руководство по программированию основных данных - Конфигурации
и вот хороший учебник для управления двумя объектными контекстами:
Несколько управляемых объектных контекстов с основными данными