CGContextSaveGState: недопустимый контекст 0x0 (Xcode 7 GM)

У меня есть эта проблема после того, как я скомпилировал свой код с Xcode 7 GM.

согласно Apple, это ошибка, но это все еще кажется проблемой. Все работает отлично, но можно ли избавиться от этих ошибок?

: CGContextSaveGState: недопустимый контекст 0x0. Если вы хотите увидеть backtrace, установите переменную среды CG_CONTEXT_SHOW_BACKTRACE.

: CGContextTranslateCTM: недопустимый контекст 0x0. Если вы хотите увидеть трассировку, установите переменную среды CG_CONTEXT_SHOW_BACKTRACE.

: CGContextRestoreGState: недопустимый контекст 0x0. Если вы хотите увидеть backtrace, установите переменную среды CG_CONTEXT_SHOW_BACKTRACE.

enter image description here

кто-то на других форумах сказал что-то о строке состояния, но у меня нет никакого успеха, чтобы устранить сообщение. Это не огромная проблема, но это бесполезно "ошибка". Я использую интерфейс Строитель.

Обновлено: я использовал Objective-C если вы используете Swift,может быть, это вопрос, который вы ищете

5 ответов


Это также происходит для меня на 7 GM, но удаление UIViewControllerBasedStatusBarAppearance от информация.плист починил его для меня, как сказал здесь.

обновление: предупреждение, похоже, исчезло с iOS 9.2


сегодня я нашел еще одну причину этой ошибки.

когда я написал код чертежа в своем классе контроллера вида, эти ошибки появились. Я понял, что мне нужно создать подкласс UIView и выполнить шаги рисования в функции переопределения drawRect. Когда я переместил код чертежа туда, все ошибки исчезли.


Я рисую с помощью UIBezierPath

удаление path.fill() удалены предупреждения.


это хороший случай для использования отладчика. Я установил точку останова в моем main а затем использовал клавишу F7, чтобы пройти через код, пока не появится предупреждение. Оказывается, есть еще один способ появления этой фиктивной ошибки:

NSColor *myColor = colorFromRGBA(43,51,59,0.95);
[myColor set];
(self.window).backgroundColor = myColor;

он генерировал предупреждение на [myColor set]. Очевидно, мне это было не нужно, и я это прокомментировал. В этот момент ошибка исчезла. Конечно, ваш опыт может отличаться.


перезагрузить устройство. Это исправило мою проблему.