UITableView no se muestra después de volver a cargar los datos

Tengo un extraño problema con mi tableView. Cargo datos a través de JSON en mi tableView. Mientras que el JSON se solicita desde la web en otra class, muestro una vista de indicador de actividad en mi vista actual y la tablaView está oculta. Tengo un método de delegado, que se llama tan pronto como el json está listo.

-(void)didReceivePlayers:(NSArray *)players { [activityIndicator stopAnimating]; tableViewPlayers.hidden = false; startButton.hidden = false; playersData = [[NSMutableArray alloc] initWithArray:players]; [tableViewPlayers reloadData]; NSLog(@"done reloading"); } 

El método se llama perfectamente. El código es bastante sencillo. Oculto mi indicador de actividad y muestro my tableView. Entonces llamo a reloadData. Solo toma unos pocos milisegundos. PERO después de reloadData, todavía se muestra mi ActivityIndicator y me lleva varios segundos mostrar mi vista de tabla, aunque el nslog se llama de inmediato.

También intenté llamar a los datos de recarga en mainThread, pero esto no cambió nada.

¡Gracias por tu ayuda!

Asegúrese de que el código se esté ejecutando en el hilo principal. Puede usar la queue de operaciones principal como esta:

 -(void)didReceivePlayers:(NSArray *)players { [[NSOperationQueue mainQueue] addOperationWithBlock:^{ [activityIndicator stopAnimating]; tableViewPlayers.hidden = false; startButton.hidden = false; playersData = [[NSMutableArray alloc] initWithArray:players]; [tableViewPlayers reloadData]; NSLog(@"done reloading"); }]; }