Estoy tratando estos dos enfoques:Ejecutar en Next Run Loop: ¿Qué hay de malo con GCD?
dispatch_async(dispatch_get_main_queue(),^{
[self handleClickAsync];
});
y
[self performSelector:@selector(handleClickAsync) withObject:nil afterDelay:0];
en respuesta a una pulsación de botón.
El segundo permite resaltar UIButton
como se esperaría y realizar el handleClickAsync
en el siguiente ciclo de ejecución (supongo que "algún día después" seguro). El primero no permite que la instancia UIButton
se encienda hasta que la operación esté completamente completa.
¿Cuál es la forma correcta de hacer esto con GCD, o es performSelector
siendo la única manera?
Es de suponer que está llamando esto desde dentro de otra cola de distribución? Si es así, ejecutará todos los comandos secuencialmente dentro de la cola. ¿Es posible que llame a este método antes de comenzar la operación? –
No estoy seguro. Llamo esto directamente desde un 'touchesEnded', que viene gratis en la subclase' UIView' (o UIButton en este caso). –
No estoy seguro de por qué está haciendo una asociación entre dispatch_async y la ejecución del runloop ... –