У меня есть приложение Core Data, и я переносил (обновлял) базовую модель данных. Каждый раз, когда я создаю новую версию, я создаю модель сопоставления для каждой версии. Прямо сейчас у меня есть 16 версий, и у меня есть модели для сопоставления, которые выглядят следующим образом: 1to2.xcmappingmodelto3.xcmappingmodel 3to4.xcmappingmodel ... и т. Д. до 16Перенос нескольких версий в основные данные
Это прекрасно работает, но проблема возникает, когда один пользователь имеет файл данных с версией 10 и обновляет приложение с версией 16. Некоторые из того, как я думал, что Core Data будет автоматически обновляться с 10 до 16, появляется ошибка, указывающая «Отсутствующая модель сопоставления». Чтобы убедиться, что модели карт верны, я обновляю их до каждой версии по одному (от 10 до 11, от 11 до 12 и т. Д.), И это действительно сработало ... Вот мой код.
указываю версии модели с этим кодом:
NSBundle *modelWrapper = [NSBundle bundleWithPath:[[NSBundle mainBundle] pathForResource:@"TaskApp_DataModel" ofType:@"momd"]];
NSString *modelPath = [modelWrapper pathForResource:@"TaskApp_DataModel 16" ofType:@"mom"];
NSLog(@"%@",modelPath);
managedObjectModel = [[NSManagedObjectModel alloc]initWithContentsOfURL:[NSURL fileURLWithPath:modelPath]];
И я определяю вариант Migrate Автоматический здесь:
NSURL *url = [NSURL fileURLWithPath: [applicationSupportDirectory stringByAppendingPathComponent: @"storedata-sql"]];
NSMutableDictionary *dict = [NSMutableDictionary dictionary];
[dict setObject:[NSNumber numberWithBool:YES] forKey:NSMigratePersistentStoresAutomaticallyOption];
if (![persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType
configuration:nil
URL:url
options:dict
error:&error]){
Кто-нибудь знает, как обновить это? Спасибо.
Да спасибо ... Я только что нашел его в книге Маркус Сарра Core Data ... он написал большую процедуру перенастройки от каждой модели к другой без написания дополнительной модели отображения. Перейти к проверке на NSINfersMappingModel Спасибо! – 2010-11-30 00:02:37