Я хочу, чтобы мое приложение смогло сделать автоматическую легкую миграцию, когда добавляю новые атрибуты моей основной модели данных.
В руководстве от Apple это единственная информация по этому вопросу, которую я мог найти:
Автоматическая легкая миграция
Чтобы запросить автоматический легкий вес миграции, вы устанавливаете соответствующие флаги в словаре опций, которые вы передаете addPersistentStoreWithType: Конфигурация: URL: опции: ошибка:. Вам нужно установить соответствующие значения как для NSMigratePersistentStoresAutomaticallyOption и NSInferMappingModelAutomaticallyOption клавиши YES:
NSError *error;
NSURL *storeURL = <#The URL of a persistent store#>;
NSPersistentStoreCoordinator *psc = <#The coordinator#>;
NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithBool:YES], NSMigratePersistentStoresAutomaticallyOption,
[NSNumber numberWithBool:YES], NSInferMappingModelAutomaticallyOption, nil];
if (![psc addPersistentStoreWithType:<#Store type#>
configuration:<#Configuration or nil#> URL:storeURL
options:options error:&error]) {
// Handle the error.
}
My NSPersistentStoreCoordinator
инициализируется следующим образом:
- (NSPersistentStoreCoordinator *)persistentStoreCoordinator {
if (persistentStoreCoordinator != nil) {
return persistentStoreCoordinator;
}
NSURL *storeUrl = [NSURL fileURLWithPath: [[self applicationDocumentsDirectory] stringByAppendingPathComponent: @"FC.sqlite"]];
NSError *error = nil;
persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:[self managedObjectModel]];
if (![persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeUrl options:nil error:&error]) {
NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
abort();
}
return persistentStoreCoordinator;
}
У меня возникли проблемы с тем, как и как я должен добавить код Apple для работы автоматической облегченной миграции?