Я хотел бы добавить содержимое из одного файла sqlite (который был создан с использованием Core Data с моделью A) в другое хранилище sqlite, которое используется моим приложением (которое использует ту же модель A). Идея состоит в том, чтобы быстро импортировать большие объемы данных.
Проблема, с которой я сталкиваюсь, заключается в том, что приведенный ниже код работает только один раз. Когда я пытаюсь запустить один и тот же код дважды, приложение вылетает в строке, отмеченной моим комментарием. Любая помощь будет принята с благодарностью.
NSError **err;
NSURL *importURL = [NSURL fileURLWithPath:[[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent: @"import.sqlite"]];
NSURL *storeURL = [NSURL fileURLWithPath:[[self applicationDocumentsDirectory] stringByAppendingPathComponent: @"applicationdata.sqlite"]];
NSMigrationManager *migrator = [[NSMigrationManager alloc] initWithSourceModel:[self managedObjectModel] destinationModel:[self managedObjectModel]];
NSMappingModel *mappingModel = [NSMappingModel inferredMappingModelForSourceModel:[self managedObjectModel] destinationModel:[self managedObjectModel] error:err];
NSError **err2;
// the following line crashes when the whole block is ran twice
[migrator migrateStoreFromURL:importURL
type:NSSQLiteStoreType
options:nil
withMappingModel:mappingModel
toDestinationURL:storeURL
destinationType:NSSQLiteStoreType
destinationOptions:nil
error:err2];
NSLog(@"import finished");
[migrator release];