2015-08-30 11 views
10

Ho impostato la variabile di ambiente CG_CONTEXT_SHOW_BACKTRACE su YES perché avevo il seguente errore CGContextSaveGState: invalid context 0x0.CGContextSaveGState: contesto 0x0 non valido all'avvio di app

Il seguente stacktrace non mi ha aiutato molto.

<Error>: CGContextSaveGState: invalid context 0x0. Backtrace: 
     <-[UIStatusBarBatteryItemView contentsImage]+773> 
     <-[UIStatusBarItemView updateContentsAndWidth]+36> 
     <-[UIStatusBarItemView initWithItem:data:actions:style:]+503> 
     <+[UIStatusBarItemView createViewForItem:withData:actions:foregroundStyle:]+159> 
      <-[UIStatusBarLayoutManager _createViewForItem:withData:actions:]+168> 
      <-[UIStatusBarLayoutManager _prepareEnabledItemType:withEnabledItems:withData:actions:itemAppearing:itemDisappearing:]+3 
      <-[UIStatusBarLayoutManager prepareEnabledItems:withData:actions:]+108> 
      <-[UIStatusBarForegroundView _setStatusBarData:actions:animated:]+951> 
       <-[UIStatusBarForegroundView setStatusBarData:actions:animated:]+874> 
       <__51-[UIStatusBar _prepareToSetStyle:animation:forced:]_block_invoke+443> 
       <+[UIView(Animation) performWithoutAnimation:]+82> 
       <-[UIStatusBar _prepareToSetStyle:animation:forced:]+935> 
        <-[UIStatusBar _requestStyleAttributes:animationParameters:forced:]+404> 
        <-[UIStatusBar requestStyle:animationParameters:forced:]+490> 
        <-[UIStatusBar requestStyle:animated:forced:]+113> 
        <-[UIStatusBar forceUpdateStyleOverrides:]+97> 
         <-[UIStatusBar _evaluateServerRegistration]+294> 
         <-[UIStatusBar didMoveToSuperview]+33> 
         <__45-[UIView(Hierarchy) _postMovedFromSuperview:]_block_invoke+683> 
         <-[UIView(Hierarchy) _postMovedFromSuperview:]+484> 
          <-[UIView(Internal) _addSubview:positioned:relativeTo:]+2305> 
          <-[UIView(Hierarchy) addSubview:]+56> 
          <-[UIStatusBarWindow setStatusBar:]+311> 
          <-[UIApplication _createStatusBarWithRequestedStyle:orientation:hidden:]+384> 
           <-[UIApplication _runWithMainScene:transitionContext:completion:]+1047> 
           <__84-[UIApplication _handleApplicationActivationWithScene:transitionContext:completion:]_block_invo 
           <-[UIApplication workspaceDidEndTransaction:]+163> 
           <__37-[FBSWorkspace clientEndTransaction:]_block_invoke_2+71> 
            <__40-[FBSWorkspace _performDelegateCallOut:]_block_invoke+54> 
            <-[FBSSerialQueue _performNext]+184> 
            <-[FBSSerialQueue _performNextFromRunLoopSource]+52> 
            <FBSSerialQueueRunLoopSourceHandler+33> 
             <__CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__+15> 
             <__CFRunLoopDoSources0+523> 
             <__CFRunLoopRun+1032> 
             <CFRunLoopRunSpecific+470> 
              <CFRunLoopRunInMode+123> 
              <-[UIApplication _run]+540> 
              <UIApplicationMain+160> 
              <main+94> 

L'errore si verifica all'avvio e sembra che ci sia un problema con la vista Batteria. Questo errore ti suona un campanello?

FWW la mia app è principalmente scritta in Swift 2.0, su iOS9 con Xcode 7b6.

+0

Sto avendo lo stesso identico problema all'avvio con la mia app sotto iOS9/Xcode 7b6. Ti farò sapere se mi viene in mente qualcosa. – hatfinch

+0

Sembra che si tratti di un problema generale durante la compilazione dell'app con xcode 7b6. Sto avendo lo stesso. –

+2

Appare ancora con Xcode 7 GM. –

risposta

6

Ho riscontrato lo stesso problema, e la causa era, stavo giocando con l'impostazione di diversi stili della barra di stato per schermi diversi. Di conseguenza e avevo bisogno di aggiungere "Visualizza aspetto barra di stato basata su controller" all'interno di plist. E l'avviso scompare se rimuovo questa chiave.

+0

Hai capito. Mi sono trasferito a usare '[[UINavigationBar appearance] setBarStyle: UIBarStyleBlack];' per ottenere una barra di stato con il testo. –

0

Quando vedi che l'errore si origina nel tuo codice, significa che stai passando un CGContextRef NULL a qualche bit di API grafica principale (in questo caso CGContextSaveGState), che causerà qualsiasi disegno che stai tentando di fare lavorare o comportarsi in modo imprevisto.

In questo caso, non è originario del codice, quindi non c'è molto che si possa fare al riguardo - fortunatamente, l'errore non è fatale, quindi puoi tranquillamente ignorarlo. Potrebbe voler file a bug con il backtrace, però.

Problemi correlati