CGContextSaveGState: недопустимый контекст 0x0 Ошибка только на устройстве

Обновление: я использую XCode 7 Beta со Swift 2.0

Когда я пытаюсь запустить приложение на iPhone, я получаю эти 3 ошибки:

<Error>: CGContextSaveGState: invalid context 0x0. If you want to see the backtrace, please set CG_CONTEXT_SHOW_BACKTRACE environmental variable.
<Error>: CGContextTranslateCTM: invalid context 0x0. If you want to see the backtrace, please set CG_CONTEXT_SHOW_BACKTRACE environmental variable.
<Error>: CGContextRestoreGState: invalid context 0x0. If you want to see the backtrace, please set CG_CONTEXT_SHOW_BACKTRACE environmental variable.

Когда я включаю переменную CG_CONTEXT_SHOW_BACKTRACE, я получаю следующее:

Backtrace:
      <<redacted>+40>
       <<redacted>+432>
        <<redacted>+144>
         <<redacted>+172>
          <<redacted>+332>
           <<redacted>+112>
            <<redacted>+820>
             <<redacted>+688>
              <<redacted>+356>
               <<redacted>+80>
                <<redacted>+808>
                 <<redacted>+344>
                  <<redacted>+420>
                   <<redacted>+104>
                    <<redacted>+284>
                     <<redacted>+556>
                      <<redacted>+504>
                       <<redacted>+1792>
                        <<redacted>+220>
                         <<redacted>+284>
                          <<redacted>+920>
                           <<redacted>+168>
                            <<redacted>+184>
                             <<redacted>+56>
                              <<redacted>+24>
                               <<redacted>+540>
                                <<redacted>+724>
                                 <CFRunLoopRunSpecific+384>
                                  <<redacted>+460>
                                   <UIApplicationMain+204>
                                    <main+164>

Я не уверен, как интерпретировать это, я не использую контент CoreGraphics в своем коде, и другие подобные вопросы имели ответы, которые не работали для меня. Я понимаю, что может быть сложно помочь отлаживать без кода, но я не могу понять, какой код связан с этим, поэтому, если у кого-то есть идея, я могу опубликовать больше кода.

Ответ 1

Из моих экспериментов это, по-видимому, связано с определением UIViewControllerBasedStatusBarAppearance в Info.plist.

Это происходит на iOS 9 (бета и GM), но не на 8.4.

Ответ 2

В предложении @JimRota, переместив это в ответ, так как было сочтено полезным:

Если это все еще в XCode 7 GM, iOS9 GM. Но, проверьте это: установите UIViewControllerBasedStatusBarAppearance в YES (даже если строка состояния скрыта, поэтому я установил ее как НЕТ), и предупреждения уходят. Сумасшедший!

Затем мне пришлось добавить это в мои контроллеры просмотров, чтобы сохранить строку состояния скрытой:

- (BOOL) prefersStatusBarHidden
{
    return YES;
}

Для меня все мои VC фактически наследуют от ProjectNameViewController, так что это немного упростило.

Ответ 3

im, получая то же самое в выпуске xcode 7 GM, я думаю, что они просто игнорируют их, поскольку все работает, но его довольно раздражает, даже если они признали свою ошибку и просто не исправили ее. Отпуск форума форума

Ответ 4

из приведенных выше комментариев, это реальный способ исправить:

UIViewControllerBasedStatusBarAppearance to YES in Info.plist

Ответ 5

Я получаю это тоже (включая отредактированную часть) при компиляции моего проекта на iOS9 beta5. Его отлично при компиляции на iOS8.

Это происходит прямо в приложении App Delegate перед выполнением любых команд из

  • (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

поэтому, скорее всего, это бета-версия iOS, чем наша.

Ответ 6

У меня был такой же тип ошибок при использовании не целочисленных значений в качестве вложений для изменяемых размеров изображений, например:

UIImage * image = [[UIImage imageNamed:@"pill"]
             resizableImageWithCapInsets:UIEdgeInsetsMake(17.5, 17.5, 17.5, 17.5)];

Это вызвало такие журналы. Использование целочисленных значений устранило проблему.

Ответ 7

У меня была эта ошибка. Это было потому, что я создал функцию и забыл добавить возвращаемое значение.

-(void)doSomething

против.

-doSomething

тьфу.