user81038
user81038

Reputation:

Threaded drawing on the iPhone

Apples documentation states that in general Quartz2D is thread-safe. However when drawing to an image context during a NSOperation I'm experiencing crashes (EXC_BAD_ACCESS).

This is my current setup:

UIGraphicsBeginImageContext(imageSize);
CGContextRef context = UIGraphicsGetCurrentContext();
// drawing code
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

I suspect the crashes are related to the current context as the UIGraphicsGetCurrentContext docu states that it needs to be called from the main thread. Is this correct? Are there any other ways to get the image context?

Upvotes: 3

Views: 1296

Answers (2)

Mike Abdullah
Mike Abdullah

Reputation: 15013

The various UIGraphics functions are mostly just convenience methods around the lower-level functions. Read up CGGraphicsContext and how to create your own; the documentation is very helpful.

Upvotes: 3

NSResponder
NSResponder

Reputation: 16861

You've answered your own question. The docs say you have to call UIGraphicsGetCurrentContext() on the main thread, you're not doing so, and your app is crashing. QED.

Upvotes: 2

Related Questions