Reorder NSOperationQueue

cocoa, iphone, multithreading, touch

Solution

The major difference between `NSOperationQueue` and the underlying GCD queues is that `NSOperation`s support dependencies between operations. `NSOperationQueue` will not schedule an operation until all of its dependencies have completed. Of the available operations, the highest priority operation is chosen to run next.

Since the operation queue may run several operations simultaneously (according to `maxConcurrentOperations`), there is not strict sense of order on the queue. You would be much better off using the dependencies API or changing operation prorities.

I believe that you can change dependencies and priorities after adding an operation to the queue.

Problem

I'm looking for a way to reorder an NSOperationQueue. I could cancel all the operations and toss them back in using the order I want, but I was hoping for something a little bit cleaner. Any thoughts?

Original source