NSFetchedResultsController no puede desplazarse mientras se actualiza la tabla

Tengo un tableView con NSFetchedResultsController que escucha actualizaciones de elementos.

 func controllerWillChangeContent(controller: NSFetchedResultsController) { self.tableView.beginUpdates() } func controller(controller: NSFetchedResultsController, didChangeObject anObject: AnyObject, atIndexPath indexPath: NSIndexPath?, forChangeType type: NSFetchedResultsChangeType, newIndexPath: NSIndexPath?) { switch type { case .Insert: if let _newIndexPath = newIndexPath { self.tableView.insertRowsAtIndexPaths([_newIndexPath], withRowAnimation: .None) } case .Delete: if let _indexPath = indexPath { self.tableView.deleteRowsAtIndexPaths([_indexPath], withRowAnimation: .None) } case .Update: if let _indexPath = indexPath { self.tableView.reloadRowsAtIndexPaths([_indexPath], withRowAnimation: .None) } default: self.tableView.reloadData() } self.items = controller.fetchedObjects as! [Item] } func controllerDidChangeContent(controller: NSFetchedResultsController) { self.tableView.endUpdates() } 

Cuando el usuario agrega un elemento, lo actualizo en la database cada 1-2 segundos y no puedo desplazarme hacia abajo, porque el controller actualiza el elemento y me desplaza hacia arriba.

Encontré un problema Es porque uso:

 self.tableView.rowHeight = UITableViewAutomaticDimension 

Gracias por esta respuesta: UITableView rebotando en la parte superior de una sección al llamar a reloadRowsAtIndexPaths

¿Has intentado eliminar el caso pnetworkingeterminado? Está volviendo a cargar la vista de tabla cada vez que se mueve un elemento.

Intente implementar el caso .Move como se describe en esta publicación: http://www.raywenderlich.com/999/core-data-tutorial-for-ios-how-to-use-nsfetchedresultscontroller .