Articles of grand central dispatch

Dispatch_after recursión vs NSTimer programmedtimerwithtimeinterval

Leí un código, comtesting los datos y actualizo la interfaz de usuario cada segundo. Suena a lo que solemos hacer con NSTimer scheduledtimerwithtimeinterval . Pero este código se implementa con la llamada recursiva dispatch_after así: – (void) retriggerMethod { … do stuff here, assuming you want to do it on first invocation … dispatch_after( …, […]

ios semáforo, espera, no espere

Tengo un problema al usar dispatch_semaphore_wait (…) cuando se creó el semáforo con un valor mayor que 0 sema = dispatch_semaphore_create(2); dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ //signals here }); dispatch_semaphore_wait(sema, DISPATCH_TIME_FOREVER); dispatch_release(sema); ¿No debería esperar esperar dos señales? ¡En el código anterior no espera en absoluto y se llama a la versión y el resultado es un […]

E / S y performance asíncronos

Actualmente estoy usando Grand Central Dispatch (desarrollo de iOS) para descargas de imágenes desde un server remoto. Esto implica enviar un nuevo hilo desde el hilo principal; la tarea de download la image del server está sucediendo en el hilo lateral. Cuando la tarea se completa, obviamente actualizo la vista del hilo principal con la […]

Swift 3: Diferencia entre DispatchQueue.main.async {} y DispatcQueue.main.async (ejecutar: {})?

Hay una diferencia semántica muy estrecha entre los dos, y me pregunto por qué existen ambas opciones. ¿Son de alguna manera diferentes funcionalmente, o es probable que sea solo un alias del otro?

En RubyMotion, ¿cómo cancela una actualización de la list cuando se toca el enlace posterior?

Soy nuevo en RubyMotion y tengo dificultades para llegar a comprender algunas de las API. Mi aplicación es una serie muy básica de lists UITable, si seleccionas un elemento, irás a la list para ese elemento, lo que se logrará presionando un nuevo controller. Todo esto funciona bien, pero en mi punto de vista, el […]

Realizar tareas de networking y otras tareas que requieren mucho time en segundo plano

Estoy desarrollando una aplicación de iOS basada en networking que descarga datos json del server y los procesa. Tanto la tarea de descarga como la tarea de procesamiento pueden tardar un time considerable en completarse, por lo que no quiero realizarlo en el hilo principal. Creo que hay 2 maneras de hacer esto: Realice la […]

Se bloquea en __CFTSDFinalize

Tenemos un error grave que no podemos evitar. El problema es que sucede suceder asincrónicamente en segundo plano, obviamente cuando el sistema de despacho limpia un hilo de trabajo. Aquí hay dos trazas de stack de ejemplo: Thread 7 Crashed: 0 libobjc.A.dylib 0x3b23b5b0 objc_msgSend + 15 1 Foundation 0x33c03581 -[NSNotificationCenter postNotificationName:object:userInfo:] + 49 2 Foundation […]

NSURLSessionTask completionTask nunca recibe una llamada en la queue principal usando GCD

Estoy usando iOS 7 NSURLSession para hacer un simple GET a un service RESTful. Esto es lo que hice: NSURLSessionConfiguration *sessionConfig = [NSURLSessionConfiguration ephemeralSessionConfiguration]; _session = [NSURLSession sessionWithConfiguration:sessionConfig delegate:nil delegateQueue:[NSOperationQueue mainQueue]]; // create your url at this line NSURLRequest *request = [NSURLRequest requestWithURL:url]; NSURLSessionTask *task = [self.session dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) { […]

NSRunLoop desde un context de queue tiene sentido?

Intenté alejarme de los hilos específicos y pensar más en las queues, como sugieren las mejores prácticas y las pautas en el ámbito de iOS. LO QUE HACÉ QUE HACER: solía ser capaz de crear un nuevo hilo, luego ejecutar un runloop en él. Cada vez que quería ejecutar una tarea en ese hilo llamaba […]

iOS: mantener la interfaz de usuario receptiva mientras se cargan las imágenes en un hilo separado

Algún context: tengo una UICollectionView que mostrará alnetworkingedor de mil imágenes diminutas, aunque solo alnetworkingedor de 100 de ellas estarán visibles al mismo time. Necesito cargar estas imágenes del disco en un hilo por separado, para que la interfaz de usuario no se bloquee y el usuario pueda interactuar con la aplicación mientras las imágenes […]