Cambiar la sección de una fila de UITableView en time de ejecución

Tengo una UITableView controlada por un NSFetchedResultsController. Las filas están organizadas en secciones de una propiedad de la fila. Pero cuando modifico esa propiedad, la aplicación terminó con:

Invalid update: invalid number of sections. 

Cada fila representa un disparo en una película, plano ancho, cerca, etc. La fila también contiene a qué escena pertenece y las secciones se calculan a partir de eso.

Shot.m (entidad CoreData)

 #pragma mark Transient properties - (NSString *)sectionIdentifier { return [self sceneNumber]; } 

ShotsViewController.m (The UITableView)

 - (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section { id <NSFetchedResultsSectionInfo> theSection = [[self.fetchedResultsController sections] objectAtIndex:section]; return [theSection name]; } 

No sé qué se supone que debo hacer aquí. He jugado con las secciones insertables y deleteSections de UITableView, pero siempre obtengo el mismo error de número de secciones erróneo.

Editar

Se mueve automáticamente a otras secciones existentes:

 - (void)controller:(NSFetchedResultsController *)controller didChangeSection:(id <NSFetchedResultsSectionInfo>)sectionInfo atIndex:(NSUInteger)sectionIndex forChangeType:(NSFetchedResultsChangeType)type { switch(type) { case NSFetchedResultsChangeInsert: [self.tableView insertSections:[NSIndexSet indexSetWithIndex:sectionIndex] withRowAnimation:UITableViewRowAnimationFade]; break; case NSFetchedResultsChangeDelete: [self.tableView deleteSections:[NSIndexSet indexSetWithIndex:sectionIndex] withRowAnimation:UITableViewRowAnimationFade]; break; case NSFetchedResultsChangeUpdate: [self.tableView reloadSections:[NSIndexSet indexSetWithIndex:sectionIndex] withRowAnimation:UITableViewRowAnimationFade]; break; } } 

Funcionó después de agregar el

 case NSFetchedResultsChangeUpdate: [self.tableView reloadSections:[NSIndexSet indexSetWithIndex:sectionIndex] withRowAnimation:UITableViewRowAnimationFade]; 

Pero ahora, digamos que tengo dos celdas. Cell1.sceneNumber = 1 Cell2.sceneNumber = 2

Si establezco Cell1.sceneNumber = 3 obtengo el error:

 Invalid update: invalid number of sections. The number of sections contained in the table view after the update (3) must be equal to the number of sections contained in the table view before the update (2) 

Necesitaríamos ver mucho más código para saber cuál es el problema. Sin embargo, una cosa que podría ser útil es revisar el video "Vistas de la table de masterización" de la WWDC del año pasado. Revisan los detalles de cómo agregar / eliminar secciones / filas y el order en que debe hacer el cambio en su model / tabla (con diagtwigs claros).

Vaya a https://developer.apple.com/videos/wwdc/2010/ y después de iniciar session, vaya a Frameworks de aplicación> Session 128 – Mastering Table Views.