Обновление приложения iOS с обновленной моделью данных ядра
Я почти закончил выпуск моего первого приложения iOS в своем выпуске версии 1.1, в котором я сделал две небольшие изменения в моей базовой модели данных. Более конкретно, я добавил два атрибута в одну из моих таблиц. Это мое первое приложение с основными данными и, следовательно, первое обновление основных данных для живого приложения, и я немного нервничаю в отношении кода доставки, который может не работать для моих текущих пользователей. Поскольку это небольшое обновление, я предполагаю, что метод автоматической миграции Яблок будет делать, но я не хочу угадывать.
Соответствующий код выглядит следующим образом:
NSError *error = nil;
__persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:[self managedObjectModel]];
NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithBool:YES], NSMigratePersistentStoresAutomaticallyOption,
[NSNumber numberWithBool:YES], NSInferMappingModelAutomaticallyOption, nil];
if (![__persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:options error:&error])
{
//NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
abort();
}
В 1.1 я добавил NSDictionary *options
.
В моем контроллере я удостоверяюсь, что нужные строки не ноль:
if (currentPage.inputType == @"drawing") {
[pageView changeToDrawing];
} else if (currentPage.inputType == @"text") {
[pageView changeToText];
} else {
currentPage.inputType = @"text";
[pageView changeToDrawing];
}
В основном, эти изменения достаточно или мне нужно сделать что-то еще?
Ответы
Ответ 1
Вот очень полезная статья в отношении управления версиями Core Data, которая отвечает на ваш вопрос.
Чтобы подвести итог в нескольких словах, вам нужно добавить новую версию модели в свой проект. Это необходимо для процесса миграции.
Edit
Ссылка выше была изменена и перенаправит вас на следующую ссылку: Версии и моделирование модели основных данных
Если все остальное не удается, google: Java-разработчик разработки и переноса данных с базовыми данными.