2010-01-26 10 views
9

Estoy buscando una forma de reordenar un NSOperationQueue.Reordenar NSOperationQueue

Podría cancelar todas las operaciones y volver a utilizarlas en el orden que desee, pero esperaba algo un poco más limpio. ¿Alguna idea?

Respuesta

21

La principal diferencia entre NSOperationQueue y las colas GCD subyacentes es que NSOperation s admite dependencias entre operaciones. NSOperationQueue no programará una operación hasta que se hayan completado todas sus dependencias. De las operaciones disponibles, se elige la operación de mayor prioridad para que se ejecute a continuación.

Como la cola de operaciones puede ejecutar varias operaciones simultáneamente (de acuerdo con maxConcurrentOperations), no hay un estricto sentido de orden en la cola. Sería mucho mejor utilizar la API de dependencias o cambiar las prioridades de operación.

Creo que puede cambiar las dependencias y las prioridades después de agregar una operación a la cola.

+0

Prioridades, sí. Eso me acercará lo suficiente. ¡Gracias! – mousebird

6

No hay posibilidad de volver a ordenar las operaciones en una cola. Si necesita expresar que una operación debe venir después de otra, use la API de dependencias para hacerlo.

Consulte la documentación de NSOperationQueue para obtener más información. Los dos primeros párrafos del resumen discuten las dependencias.

Cuestiones relacionadas