/ / UITableView reloadData () se activa pero se retrasa: ios, uitableview, swift, reloaddata

UITableView reloadData () se activa pero se retrasa: ios, uitableview, swift, reloaddata

Me encontré con este extraño comportamiento de una UITableView.

Estoy recuperando algunos registros de CloudKit en mi aplicación. He configurado una subclase dedicada a NSObject para manejar todo esto, y cada vez que recibe un registro, agrega el registro a mi matriz modelo y luego le dice a su delegado que ha recibido algo. El delegado vuelve a cargar el tableView.

func cloudKitFetchedRecord(identifier: NSString) {
if identifier.isEqualToString("getAllProfiles") {
self.tableView.reloadData()
}
}

Todo esto funciona. Excepto por el hecho de que después de llamar reloadData, nada pasa por un tiempo. La mesa tarda unos 10-20 segundos en volver a cargarse. Extrañamente, también se vuelve a cargar cuando toco la pantalla, pero cuando disparo reloadData no pasa nada.

He comprobado toda mi aplicación, poner enpuntos de interrupción en todas partes, pero la aplicación no hace nada mientras retrasa la recarga. También limpié el proyecto, limpié la carpeta de compilación, hice casi todo lo que pude encontrar pero sigue haciendo esto.

¿Alguien más se topó con este comportamiento, o alguien sabe algo sobre cómo resolverlo?

Cualquier comentario sería altamente apreciado.

Respuestas

3 para la respuesta № 1

Creo que su delegate La llamada se produce en segundo plano, así que todo lo que necesita hacer es llamar. reloadData funcionar en Hilo principal

dispatch_async(dispatch_get_main_queue(), {self.tableView.reloadData()})

6 para la respuesta № 2

Ejecute su método reloadData en el hilo principal:

dispatch_async(dispatch_get_main_queue(), {self.tableView.reloadData()})