Zapisywanie i przywracanie CGContext

Próbuję zapisać i przywrócić kontekst CG, aby uniknąć wykonywania ciężkich obliczeń po raz drugi i otrzymuję błąd<Error>: CGGStackRestore: gstack underflow.

Co ja robię źle? Jaki jest właściwy sposób, aby to zrobić?

- (void)drawRect:(CGRect)rect {
    CGContextRef context = UIGraphicsGetCurrentContext();

    if (initialized) {
        CGContextRestoreGState(context);
        //scale context
        return;
    }

    initialized = YES;

    //heavy drawing computation and drawing

    CGContextSaveGState(context);
}

questionAnswers(3)

yourAnswerToTheQuestion