Search code examples
iosobjective-ccocoa-touchgrand-central-dispatchnsoperationqueue

Perform synchronous operations


Say I want to implement a pattern like so:

a = some array I download from the internet
b = manipulate a somehow (long operation)
c = first object of b

These would obviously need to be called synchronously, which is causing my problems in Objective C. I've read about NSOperationQueue and GCD, and I don't quite understand them, or which would be appropriate here. Can someone please suggest a solution? I know I can also use performSelector:@selector(sel)WaitUntilDone, but that doesn't seem efficient for larger operations.


Solution

  • So create a serial dispatch queue, dump all the work there (each in a block), and for the last block post a method back to yourself on the main queue, telling your control class that the work is done.

    This is by far and away the best architecture for much such tasks.