Я вижу много примеров кода, где они используют CGContextSaveGState и CGContextRestoreGState.Зачем мне сохранять состояние контекста?
CGContextSaveGState
CGContextRestoreGState
Для того, чтобы восстановить его позже.
Некоторые вещи, которые вы можете изменить в контексте, трудно (например, CTM) или невозможно (например, обтравочный контур) изменить обратно. Сохранение gstate позволяет отменить эти изменения, восстановив gstate.
Руководство по программированию в Quartz 2D рассказывает все.