La actualización de la label tarda demasiado (rápido)

Soy un desarrollador rápido y principiante. Estoy atrapado con esta aplicación de clima. Estoy descargando datos del website y luego visualizando en mi label.

Lamentablemente, todo este process tarda aproximadamente 10 segundos en actualizar mi label.

Probablemente esto no sea debido a la connection de networking ya que la console se actualiza instantáneamente.

Gracias por sugerencias.

introduzca la descripción de la imagen aquí

Lo que sucede es que el código probablemente se ejecuta en un subprocess secundario. Cualquier cambio de UI que realice debe realizarse en el hilo principal. Entonces intente esto:

dispatch_async(dispatch_get_main_queue()) { // update label } 

Esto debería actualizar tu label al instante.

Anteriormente, elegiríamos el método de envío (synchronization vs. asíncrono) y luego la queue a la que queríamos enviar nuestra tarea. El GCD actualizado invierte este order: primero elegimos la queue y luego aplicamos un método de envío.

Swift 3 :

Ahora en Swift 3, la biblioteca GCD se actualizó de la siguiente manera:

 DispatchQueue.main.async(execute: { // UI Updates }) 

Espero que esto te ayude.

Puede ser tarde para responder pero en Swift 3 la lógica debería ser así.

 DispatchQueue.global(qos: .background).async { // Background Thread Or Service call Or DB fetch etc DispatchQueue.main.async { // Run UI Updates and other logic }} 

Su código tiene varios problemas.

PRIMERO: tiene un fuerte ciclo de reference

Solucionarlo poniendo esto en cierre.

  [weak weakSelf = self] 

SEGUNDO: actualizar la interfaz de usuario en el hilo principal

 DispatchQueue.main.async { //Update UI weakSelf?.mReslut.text = "" }