GCD
es una API de bajo nivel basada en C.
NSOperation
y NSOperationQueue
son clases de Objective-C.
NSOperationQueue
es un contenedor C objetivo sobre GCD
. Si está utilizando NSOperation, está utilizando implícitamente Grand Central Dispatch.
Ventaja de GCD sobre NSOperation:
yo. implementación
Para la implementación de GCD
es muy ligero
NSOperationQueue
es complejo y pesado
Ventajas de NSOperation sobre GCD:
- ¿Por qué los anuncios gráficos interactivos no se mueven de Flash a HTML5?
- ¿Cuáles son algunas buenas bibliotecas VOIP de código abierto para iOS?
- ¿Cómo se hacen animaciones en las plataformas de Apple, como el 'Zen Garden' que se muestra en WWDC 2014?
- ¿Swift es mejor para la programación de iOS en comparación con Objective-C u otros lenguajes?
- ¿Cuáles son los mejores videos tutoriales para aplicaciones iOS que usan Swift?
yo. Control en funcionamiento
puede pausar, cancelar, reanudar una NSOperation
ii) Dependencias
puede configurar una dependencia entre dos NSOperations
La operación no se iniciará hasta que todas sus dependencias devuelvan verdadero para finalizado.
iii) Estado de la operación
puede monitorear el estado de una operación o una cola de operaciones. listo, ejecutándose o terminado
iv. Número máximo de operación
puede especificar el número máximo de operaciones en cola que pueden ejecutarse simultáneamente
Cuándo ir para GCD
o NSOperation
cuando desee un mayor control sobre la cola (todo lo mencionado anteriormente) use NSOperation
y para casos simples en los que desee menos sobrecarga (solo quiera hacer un trabajo “en segundo plano” con muy poco trabajo adicional) use GCD