2015-08-26 7 views
26

Update: Ich bin mit XCode 7 Beta mit Swift 2.0CGContextSaveGState: ungültige Kontext 0x0 Fehler nur auf dem Gerät

Wenn ich versuche, meine App auf einem iPhone bekomme ich diese 3 Fehler auszuführen:

<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. 

Wenn ich CG_CONTEXT_SHOW_BACKTRACE Variable aktivieren bekomme ich diese:

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> 

ich bin mir nicht sicher, wie diese zu interpretieren, ich verwende keine Core Graphics Inhalt i n mein Code und die anderen ähnlichen Fragen hatten Antworten, die für mich nicht funktionierten. Ich verstehe, dass es schwierig sein kann, ohne Code zu debuggen, aber ich kann nicht herausfinden, welcher Code damit in Verbindung steht. Wenn also jemand eine Idee hat, kann ich mehr Code posten.

+1

siehe [diesen Beitrag] (http://stackoverflow.com/questions/19508048/cgcontext-invalid-context-0x0?rq=1) es könnte hilfreich sein – Vladmrnv

Antwort

51

Aus meinen Experimenten scheint dies auf die Definition UIViewControllerBasedStatusBarAppearance in Info.plist zurückzuführen zu sein.

Es passiert auf iOS 9 (Beta & GM), aber nicht auf 8.4.

+0

Wow danke, das war die Ursache ... Ich werde ein Ticket einreichen – mattgabor

+19

Dies geschieht immer noch in der freigegebenen Version von Xcode 7.0. – picciano

+7

Hatte dies noch in XCode 7 GM, iOS9 GM. Aber überprüfen Sie es: Setzen Sie 'UIViewControllerBasedStatusBarAppearance' auf ** YES ** (obwohl die Statusleiste ausgeblendet ist, weshalb ich sie zu Beginn auf NO setze), und die Warnungen verschwinden. Verrückt! – Olie

1

Ich bekomme das auch (einschließlich der redacted Teil) beim Kompilieren meines Projekts auf iOS9 Beta5. Es ist in Ordnung, wenn Sie auf iOS8 kompilieren.

kommt es vor, direkt in meine App Delegate, bevor Befehle ausführt von

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

so scheint es wahrscheinlicher, ein iOS Beta Problem als bei uns sein.

+1

Ich habe hinzugefügt, dass ich XCode 7 Beta und Swift verwenden 2, aber ich denke, das war auch auf XCode 7, – mattgabor

2

ich bekomme die gleiche Sache auf der xcode 7 GM-Veröffentlichung, ich denke, einfach ignoriere sie, da alles funktioniert, aber es ist ziemlich nervig, obwohl sie einen Fehler zugelassen haben und es nur noch nicht behoben. Dev Forum Posting

11

Bei @ JimRota Vorschlag, bewegen diese in eine Antwort, da sie nützlich erachtet wurde:

Wäre dies noch in XCode 7 GM, iOS9 GM. Aber überprüfen Sie es: Setzen Sie UIViewControllerBasedStatusBarAppearance auf JA (obwohl die Statusleiste ausgeblendet ist, weshalb ich es auf NEIN setze, um damit zu beginnen), und die Warnungen verschwinden. Verrückt!

Ich hatte dann diese Controller meiner Ansicht hinzuzufügen versteckt die Statusleiste zu halten:

- (BOOL) prefersStatusBarHidden 
{ 
    return YES; 
} 

Für mich alle meine VCs erben tatsächlich von der ProjectNameViewController, so dass es ein wenig vereinfacht.

2

von Kommentaren oben gegeben, dann ist dies der richtige Weg zu beheben:

UIViewControllerBasedStatusBarAppearance to YES in Info.plist 
-1

ich diesen Fehler hatte. Ich habe eine Funktion erstellt und vergessen, einen Rückgabewert hinzuzufügen.

-(void)doSomething 

gegen

-doSomething 

igitt.

0

hatte ich die gleiche Art von Fehler, wenn nicht ganzzahlige Werte als Einsätze für resizable Bilder verwenden, wie folgt aus:

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

Dies diese Art von Protokollen verursacht. Mit ganzzahligen Werten wurde das Problem behoben.