¿Alguien puede explicar con casos de uso realmente claros para qué es el propósito de dispatch_sync en GCD ? No puedo entender dónde y por qué tendría que usar esto. ¡Gracias!
Actualmente estoy jugando con Grand Central Dispatch y descubrí una clase llamada DispatchWorkItem . La documentación parece un poco incompleta, así que no estoy seguro de usarla de la manera correcta. Creé el siguiente fragmento y esperaba algo diferente. Esperé que el artículo se cancelará después de llamar cancel en él. Pero la iteración continúa […]
Me encontré con un escenario en el que tenía una callback de delegado que podría ocurrir en el hilo principal u otro hilo, y no sabría cuál hasta el tiempo de ejecución (usando StoreKit.framework ). También tenía el código de UI que necesitaba actualizar en esa callback que tenía que suceder antes de que se […]
¿Es recomendable cerrar NSUrlConnection en un bloque de estilo gcd y ejecutarlo en una cola low_priority? Necesito asegurarme de que mis conexiones no están sucediendo en el hilo principal y las conexiones deben ser asincrónicas. También necesito varias solicitudes simultáneas para ir a la vez. Si tomo la ruta gcd, no estoy seguro de qué […]
Soy un principiante con Grand Central Dispatch (GCD) y Core Data, y necesito su ayuda para usar Core Data con CGD, para que la UI no esté bloqueada mientras agrego 40,000 registros a Core Data. Sé que el CD no es seguro para subprocesos, así que tengo que usar otro contexto, y luego guardar los […]
Quiero agregar bloques dados a una matriz, y luego ejecutar todos los bloques contenidos en la matriz, cuando así lo solicite. Tengo un código similar a esto: class MyArrayBlockClass { private var blocksArray: Array Void> = Array() private let blocksQueue: NSOperationQueue() func addBlockToArray(block: () -> Void) { self.blocksArray.append(block) } func runBlocksInArray() { for block in […]
Solo estoy jugando con GCD y he escrito una aplicación CoinFlipper de juguete. Este es el método que arroja las monedas: – (void)flipCoins:(NSUInteger)nFlips{ // Create the queues for work dispatch_queue_t mainQueue = dispatch_get_main_queue(); dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, NULL); // Split the number of flips into whole chunks of kChunkSize and the remainder. NSUInteger numberOfWholeChunks = […]
Tengo un escenario en mi aplicación, en el que quiero hacer una tarea que consume mucho tiempo, que consiste en algún procesamiento de datos, así como la actualización de la interfaz de usuario, en un método. Mi método se ve así, – (void)doCalculationsAndUpdateUIs { // DATA PROCESSING 1 // UI UPDATE 1 // DATA PROCESSING […]
Tengo una UITableView que muestra imágenes asociadas con contactos en cada fila. En algunos casos, estas imágenes se leen la primera vez que se visualizan desde la imagen de contacto de la libreta de direcciones, y donde no hay ninguna, se representan como un avatar en función de los datos almacenados. Actualmente tengo estas imágenes […]
¿Cómo puedo hacer que mi código espere hasta que termine la tarea en DispatchQueue? ¿Necesita un CompletionHandler o algo? func myFunction() { var a: Int? DispatchQueue.main.async { var b: Int = 3 a = b } // wait until the task finishes, then print print(a) // – this will contain nil, of course, because it […]