2009-06-24 11 views
5

Tengo una lista bastante grande de 'elementos' (hasta 250 entradas) que cambia constantemente. La lista se muestra en una UITableView.UITableView Problemas de dibujo cuando ReloadData se llama

Tengo un hilo de sondeo que descargará algunas entradas nuevas y las insertará en una base de datos SQLite.

Cuando han llegado nuevas entradas, llamo a mi objeto de fuente de datos de vista de tabla para actualizar su conjunto de datos, que ejecuta una consulta SQL y devuelve una nueva matriz de entradas.

Después de que esto se complete, llamo -reloadData en la vista de tabla. Cuando esto sucede, en aproximadamente 7 de cada 10 casos, la vista de tabla se dibuja en blanco (no se muestran celdas y solo se ve el color de fondo de la tabla) hasta que se realiza una llamada subsiguiente -reloadData. Tocar la vista de tabla (desplazarse, seleccionar una celda, cualquier cosa que obligue a volver a dibujar) lo hará reaparecer.

La vista de tabla, su puntero de IBOutlet y las celdas que se muestran actualmente son todas válidas en el momento en que veo el error de dibujo en blanco, por lo que estoy bastante seguro de que no se lanzarán.

He estado tratando de depurar esto durante unos días y realmente está empezando a llevarme a la pared.

Cualquier ayuda sobre esto sería increíble, gracias.

Respuesta

19

¿Te ayudará si haces un [ myTable performSelectorOnMainThread:@selector(reloadData) withObject:nil waitUntilDone:NO]?

El problema que mencionaste puede surgir si no actúas las actualizaciones de tu GUI desde el hilo principal.

+1

Amigo, me salvaste la vida. Estaba a punto de saltar de un puente o algo ... ¡Gracias! – Jasarien

Cuestiones relacionadas