2015-08-26 3 views
26

Обновление: Я использую XCode 7 Beta с Swift 2.0CGContextSaveGState: недопустимый контекст 0x0 Ошибка только на устройстве

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

+1

см. [Этот пост] (http://stackoverflow.com/questions/19508048/cgcontext-invalid-context-0x0?rq=1) может быть полезно – Vladmrnv

ответ

51

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

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

+0

Ничего себе, это было причиной ... Я отправлю билет – mattgabor

+19

Это все еще происходит в выпущенной версии Xcode 7.0. – picciano

+7

Если бы это было еще в XCode 7 GM, iOS9 GM. Но, проверьте это: установите 'UIViewControllerBasedStatusBarAppearance' в ** YES ** (даже если строка состояния скрыта, поэтому я начал ее НЕТ), и предупреждения уходят. Псих! – Olie

1

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

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

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

так, кажется, более вероятно, будет бета проблема IOS, чем у нас.

+1

Я добавил, что использую XCode 7 beta и swift 2, но я думаю, что это происходило и на XCode 7, – mattgabor

2

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

11

В @ JimRota-х внушения, двигая это в ответ, так как это было сочтено полезным:

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

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

- (BOOL) prefersStatusBarHidden 
{ 
    return YES; 
} 

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

2

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

UIViewControllerBasedStatusBarAppearance to YES in Info.plist 
-1

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

-(void)doSomething 

против

-doSomething 

тьфу.

0

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

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

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

Смежные вопросы