Не добавляются новые записи в Core Data после обновления приложения
В приложении после обновления не появляются новые записи Core Data. Получаю данные я так:
-(NSArray *) getObjects
{
self.fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Country" inManagedObjectContext:self.managedObjectContext];
[self.fetchRequest setEntity:entity];
// Set the batch size to a suitable number.
[self.fetchRequest setFetchBatchSize:20];
// Edit the sort key as appropriate.
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"name" ascending:YES];
NSArray *sortDescriptors = @[sortDescriptor];
[self.fetchRequest setSortDescriptors:sortDescriptors];
[self.fetchRequest setRelationshipKeyPathsForPrefetching:[NSArray arrayWithObject:@"provider"]];
NSError *error = nil;
self.resultArray = [[NSArray alloc] init];
self.resultArray = [self.managedObjectContext executeFetchRequest:self.fetchRequest error:&error];
if (![self.managedObjectContext countForFetchRequest:self.fetchRequest error:nil]) {
[self initData];
}
return self.resultArray;
}
Данные в Core Data записываю так:
Country *bosnherz = [NSEntityDescription insertNewObjectForEntityForName:@"Country" inManagedObjectContext:self.managedObjectContext];
bosnherz.name = @"Bosnia and Herzegovina"];
Но если я допишу новые страны для новой версии, то после обновления они не показываются. При этом если приложение удалить и установить заново — все работает.
Если я верно понимаю, это происходит, потому что уже есть sql с данными и при запуске приложение использует его, а не создает новый. Отсюда вопрос: как сделать так, чтобы оно создавало новый после обновления?
Источник: Stack Overflow на русском