С основными данными это может быть довольно сложно при обновлении до новой версии.Я много раз сталкивался с тем, что даже малейшие изменения в базовой модели данных вызывают странное поведение приложения (понятное до некоторой степени).Самый простой способ избежать любых нежелательных побочных эффектов - просто изменить имя.Здесь код
- (NSPersistentStoreCoordinator *) persistentStoreCoordinator {
// D_IN;
if (persistentStoreCoordinator != nil) {
return persistentStoreCoordinator;
}
persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel: [self managedObjectModel]];
// Allow inferred migration from the original version of the application.
NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithBool:YES], NSMigratePersistentStoresAutomaticallyOption,
[NSNumber numberWithBool:YES], NSInferMappingModelAutomaticallyOption, nil];
NSURL *storeUrl = [NSURL fileURLWithPath: [[self applicationDocumentsDirectory] stringByAppendingPathComponent: @"myData073.sqlite"]];
NSError *error = nil;
if (![persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeUrl
options:options error:&error]){
NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
}
// D_OUT;
return persistentStoreCoordinator;
}
Так что все, что вам действительно нужно сделать, это изменить имя myData073.sqlite
на, например, myData074.sqlite
Описание модели данныхФайл на самом деле не является частью двоичного файла, но модель, стоящая за ним со всеми классами и методами доступа, безусловно, есть.Вам не нужно беспокоиться об этом.ps даже во время разработки я часто меняю имя, иначе можно потратить много времени на поиск ошибок кодирования, которых на самом деле нет ...