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 в своем коде, и на другие подобные вопросы были ответы, которые не работали для меня. Я понимаю, что может быть трудно помочь отладке без кода, но я не могу понять, какой код связан с этим, поэтому, если у кого-то есть идея, я могу опубликовать больше кода.

7 ответов

Решение

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

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

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

Было это еще в XCode 7 GM, iOS9 GM. Но, проверьте это: Set UIViewControllerBasedStatusBarAppearance на ДА (даже если строка состояния скрыта, поэтому для начала я установил для нее значение НЕТ), и предупреждения исчезнут. Псих!

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

- (BOOL) prefersStatusBarHidden
{
    return YES;
}

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

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

UIViewControllerBasedStatusBarAppearance to YES in Info.plist

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

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

Это происходит прямо в моем делегате приложения, прежде чем выполнять какие-либо команды из

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

так что, похоже, проблема с бета-версией iOS выше, чем у нас.

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

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

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

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

-(void)doSomething

против

-doSomething

тьфу.

Другие вопросы по тегам