Я ищу способ переупорядочить NSOperationQueue.
Я мог отменить все операции и отбросить назад их в использовании порядка, который я хочу, но я надеялся на что-то немного более чистое. Какие-либо мысли?
Основное различие между NSOperationQueue
и лежащими в основе GCD-очереди заключается в том, что NSOperation
s поддерживает зависимости между операциями. NSOperationQueue
не будет планировать операцию до тех пор, пока все его зависимости не будут завершены. Из доступных операций для выполнения следующей выбирается операция с наивысшим приоритетом.
Так как очередь операций может выполнять несколько операций одновременно (согласно maxConcurrentOperations
), то в очереди нет строгого порядка. Гораздо лучше использовать API зависимостей или менять приоритеты операций.
Я считаю, что после добавления операции в очередь можно изменить зависимости и приоритеты.
Нет возможности повторно заказать операции в очереди. Если вам нужно выразить, что одна операция должна прийти за другой, используйте API зависимостей для этого.
См. Документацию NSOperationQueue Документация для получения дополнительной информации. Первые два абзаца обзора обсуждают зависимости.