2015-08-26 12 views
26

Update: Sto usando XCode 7 Beta con Swift 2.0CGContextSaveGState: L'errore non valido contesto 0x0 solo sul dispositivo

Quando provo a fare funzionare il mio app su un iPhone ricevo questi 3 errori:

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

Quando mi permetterà di variabile CG_CONTEXT_SHOW_BACKTRACE ottengo questo:

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> 

non sono sicuro di come interpretare questo, non sto usando qualsiasi CoreGraphics i contenuti Nel mio codice, e le altre domande simili avevano risposte che non funzionavano per me. Capisco che può essere difficile aiutare a eseguire il debug senza codice, ma non riesco a capire quale codice sia correlato a questo, quindi se qualcuno ha un'idea, posso pubblicare più codice.

+1

vedere [questo post] (http://stackoverflow.com/questions/19508048/cgcontext-invalid-context-0x0?rq=1) potrebbe essere utile – Vladmrnv

risposta

51

Dalla mia sperimentazione, questo sembra essere dovuto alla definizione di UIViewControllerBasedStatusBarAppearance in Info.plist.

Si verifica su iOS 9 (beta & GM) ma non su 8.4.

+0

Wow grazie, questa è stata la causa ... Presenterò un ticket – mattgabor

+19

Questo sta ancora accadendo nella versione rilasciata di Xcode 7.0. – picciano

+7

Aveva ancora questo in XCode 7 GM, iOS9 GM. Ma, verificarlo: Impostare 'UIViewControllerBasedStatusBarAppearance' su ** YES ** (anche se la barra di stato è nascosta, ecco perché l'ho impostata su NO per cominciare), e gli avvertimenti spariscono. Pazzo! – Olie

1

Anche questo lo capisco (compresa la parte redatta) durante la compilazione del mio progetto su iOS9 beta5. Va bene durante la compilazione su iOS8.

E accade proprio nel mio App Delegato, prima di eseguire qualsiasi comando da

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

così sembra più probabile che sia un problema di beta iOS della nostra.

+1

Ho aggiunto che sto usando XCode 7 beta e swift 2, ma penso che questo si stesse verificando anche su XCode 7, – mattgabor

2

im ottenere la stessa cosa sul rilascio di xcode 7 GM, penso che male semplicemente li ignoro poiché tutto funziona ma è piuttosto fastidioso anche se hanno ammesso un bug e non l'ha ancora risolto. Dev Forum Posting

11

A @ di JimRota suggerimento, spostare questo in una risposta, in quanto si è ritenuto utile:

avuto questo ancora in XCode 7 GM, iOS9 GM. Ma dai un'occhiata: imposta UIViewControllerBasedStatusBarAppearance su YES (anche se la barra di stato è nascosta, motivo per cui l'ho impostata su NO per cominciare) e gli avvertimenti spariscono. Pazzo!

Poi ho dovuto aggiungere questo ai miei controller di vista per mantenere la barra di stato nascosto:

- (BOOL) prefersStatusBarHidden 
{ 
    return YES; 
} 

Per me, tutti i miei VC realtà ereditano dalla ProjectNameViewController, in modo che semplificato un po '.

2

dai commenti di cui sopra, questo è il vero modo per risolvere:

UIViewControllerBasedStatusBarAppearance to YES in Info.plist 
-1

ho avuto questo errore. Era perché ho creato una funzione e ho dimenticato di aggiungere un valore di ritorno.

-(void)doSomething 

vs.

-doSomething 

ugh.

0

ho avuto lo stesso tipo di errore quando si utilizzano i valori non interi come inserti per le immagini ridimensionabili, in questo modo:

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

Questo ha causato questo tipo di tronchi. L'uso dei valori interi ha risolto il problema.