una texto telefono para numero mensajes llamadas llamada entrantes contacto como bloquear app ios dispatch-async

texto - dispatch_async y bloquear en iOS



como bloquear un numero en un iphone 7 (3)

¿Qué significa este fragmento de código?

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ TMBaseParser *parser=[[TMBaseParser alloc] init]; parser.delegate=self; NSString *post =nil; NSData *postData = [post dataUsingEncoding:NSUTF8StringEncoding]; [parser parseForServiceType:TMServiceCategories postdata:postData]; });

por favor explícalo brevemente. Gracias


Ese es un bloque de Grand Central Dispatch.

  1. dispatch_async es una llamada para ejecutar en otra cola.
  2. dispatch_get_global_queue es una llamada para obtener una cola específica con las características deseadas. Por ejemplo, el código podría ejecutarse con baja prioridad en DISPATCH_QUEUE_PRIORITY_BACKGORUND.
  3. Dentro del bloque, el código no hace nada. La publicación está configurada en nil. A continuación, se envía un mensaje a nil "dataUsingEncoding". Objective C descarta todas las llamadas a nil. Finalmente, el analizador es enviado "nil" postData.
  4. En el mejor de los casos, esto no hará nada. En el peor de los casos, al enviar el analizador, los datos nulos se bloquearán.

La pieza de código en

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ });

se ejecuta de forma asíncrona en un hilo de fondo. Esto se hace porque el análisis de datos puede ser una tarea que consume mucho tiempo y podría bloquear el hilo principal que detendría todas las animaciones y la aplicación no respondería.

Si desea obtener más información, lea la documentación de Apple en Grand Central Dispatch.


Si los fragmentos de código anteriores no funcionan, intente esto:

C objetivo:

dispatch_async(dispatch_get_main_queue(), ^{ });

Las actualizaciones de UI siempre se deben ejecutar desde la cola principal. El símbolo "^" indica el inicio de un bloque.

Swift 3:

DispatchQueue.global(qos: .background).async { print("This is run on the background queue") DispatchQueue.main.async { print("This is run on the main queue, after the previous code in outer block") } }