CG_CONTEXT_SHOW_BACKTRACE環境変数を設定するにはどうすればよいですか?


90

私のビューには3つのボタンがあります。viewDidLoad()でcornerRadusを設定した後button.layer.cornerRadius = 20:ログに次のエラーメッセージが表示されます。

 <Error>: CGContextSaveGState: invalid context 0x0. 
If you want to see the backtrace, please set 
CG_CONTEXT_SHOW_BACKTRACE environmental variable.

質問:

  • CG_CONTEXT_SHOW_BACKTRACE環境変数を設定するにはどうすればよいですか?
  • または、どうすればこの警告を修正できますか?

メッセージからバックトレースを取得しました。それは私には意味がありません。助けてください...

Aug  7 14:27:00  <Error>: CGContextSaveGState: invalid context 0x0. Backtrace:
      <-[UIStatusBarItemView updateContentsAndWidth]+33>
       <-[UIStatusBarItemView initWithItem:data:actions:style:]+477>
        <+[UIStatusBarItemView createViewForItem:withData:actions:foregroundStyle:]+134>
         <-[UIStatusBarLayoutManager _createViewForItem:withData:actions:]+163>
          <-[UIStatusBarLayoutManager _prepareEnabledItemType:withEnabledItems:withData:actions:itemAppearing:itemDisappearing:]+36
           <-[UIStatusBarLayoutManager prepareEnabledItems:withData:actions:]+92>
            <-[UIStatusBarForegroundView _setStatusBarData:actions:animated:]+797>
             <-[UIStatusBarForegroundView setStatusBarData:actions:animated:]+332>
              <__51-[UIStatusBar _prepareToSetStyle:animation:forced:]_block_invoke+360>
               <+[UIView(Animation) performWithoutAnimation:]+65>
                <-[UIStatusBar _prepareToSetStyle:animation:forced:]+866>
                 <-[UIStatusBar _requestStyleAttributes:animationParameters:forced:]+391>
                  <-[UIStatusBar requestStyle:animationParameters:forced:]+437>
                   <-[UIStatusBar requestStyle:animated:forced:]+90>
                    <-[UIStatusBar _evaluateServerRegistration]+250>
                     <__45-[UIView(Hierarchy) _postMovedFromSuperview:]_block_invoke+590>
                      <-[UIView(Hierarchy) _postMovedFromSuperview:]+544>
                       <-[UIView(Internal) _addSubview:positioned:relativeTo:]+1967>
                        <-[UIStatusBarWindow setStatusBar:]+288>
                         <-[UIApplication _createStatusBarWithRequestedStyle:orientation:hidden:]+340>
                          <-[UIApplication _runWithMainScene:transitionContext:completion:]+950>
                           <-[UIApplication workspaceDidEndTransaction:]+188>
                            <-[FBSSerialQueue _performNext]+192>
                             <-[FBSSerialQueue _performNextFromRunLoopSource]+45>
                              <__CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__+17>
                               <__CFRunLoopDoSources0+556>
                                <__CFRunLoopRun+867>
                                 <CFRunLoopRunSpecific+488>
                                  <-[UIApplication _run]+402>
                                   <UIApplicationMain+171>
                                    <main+117>



Aug  7 14:27:00  <Error>: CGContextTranslateCTM: invalid context 0x0. Backtrace:
      <-[UIStatusBarItemView updateContentsAndWidth]+33>
       <-[UIStatusBarItemView initWithItem:data:actions:style:]+477>
        <+[UIStatusBarItemView createViewForItem:withData:actions:foregroundStyle:]+134>
         <-[UIStatusBarLayoutManager _createViewForItem:withData:actions:]+163>
          <-[UIStatusBarLayoutManager _prepareEnabledItemType:withEnabledItems:withData:actions:itemAppearing:itemDisappearing:]+36
           <-[UIStatusBarLayoutManager prepareEnabledItems:withData:actions:]+92>
            <-[UIStatusBarForegroundView _setStatusBarData:actions:animated:]+797>
             <-[UIStatusBarForegroundView setStatusBarData:actions:animated:]+332>
              <__51-[UIStatusBar _prepareToSetStyle:animation:forced:]_block_invoke+360>
               <+[UIView(Animation) performWithoutAnimation:]+65>
                <-[UIStatusBar _prepareToSetStyle:animation:forced:]+866>
                 <-[UIStatusBar _requestStyleAttributes:animationParameters:forced:]+391>
                  <-[UIStatusBar requestStyle:animationParameters:forced:]+437>
                   <-[UIStatusBar requestStyle:animated:forced:]+90>
                    <-[UIStatusBar _evaluateServerRegistration]+250>
                     <__45-[UIView(Hierarchy) _postMovedFromSuperview:]_block_invoke+590>
                      <-[UIView(Hierarchy) _postMovedFromSuperview:]+544>
                       <-[UIView(Internal) _addSubview:positioned:relativeTo:]+1967>
                        <-[UIStatusBarWindow setStatusBar:]+288>
                         <-[UIApplication _createStatusBarWithRequestedStyle:orientation:hidden:]+340>
                          <-[UIApplication _runWithMainScene:transitionContext:completion:]+950>
                           <-[UIApplication workspaceDidEndTransaction:]+188>
                            <-[FBSSerialQueue _performNext]+192>
                             <-[FBSSerialQueue _performNextFromRunLoopSource]+45>
                              <__CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__+17>
                               <__CFRunLoopDoSources0+556>
                                <__CFRunLoopRun+867>
                                 <CFRunLoopRunSpecific+488>
                                  <-[UIApplication _run]+402>
                                   <UIApplicationMain+171>
                                    <main+117>




Aug  7 14:27:00 <Error>: CGContextRestoreGState: invalid context 0x0. Backtrace:
      <-[UIStatusBarItemView updateContentsAndWidth]+33>
       <-[UIStatusBarItemView initWithItem:data:actions:style:]+477>
        <+[UIStatusBarItemView createViewForItem:withData:actions:foregroundStyle:]+134>
         <-[UIStatusBarLayoutManager _createViewForItem:withData:actions:]+163>
          <-[UIStatusBarLayoutManager _prepareEnabledItemType:withEnabledItems:withData:actions:itemAppearing:itemDisappearing:]+36
           <-[UIStatusBarLayoutManager prepareEnabledItems:withData:actions:]+92>
            <-[UIStatusBarForegroundView _setStatusBarData:actions:animated:]+797>
             <-[UIStatusBarForegroundView setStatusBarData:actions:animated:]+332>
              <__51-[UIStatusBar _prepareToSetStyle:animation:forced:]_block_invoke+360>
               <+[UIView(Animation) performWithoutAnimation:]+65>
                <-[UIStatusBar _prepareToSetStyle:animation:forced:]+866>
                 <-[UIStatusBar _requestStyleAttributes:animationParameters:forced:]+391>
                  <-[UIStatusBar requestStyle:animationParameters:forced:]+437>
                   <-[UIStatusBar requestStyle:animated:forced:]+90>
                    <-[UIStatusBar _evaluateServerRegistration]+250>
                     <__45-[UIView(Hierarchy) _postMovedFromSuperview:]_block_invoke+590>
                      <-[UIView(Hierarchy) _postMovedFromSuperview:]+544>
                       <-[UIView(Internal) _addSubview:positioned:relativeTo:]+1967>
                        <-[UIStatusBarWindow setStatusBar:]+288>
                         <-[UIApplication _createStatusBarWithRequestedStyle:orientation:hidden:]+340>
                          <-[UIApplication _runWithMainScene:transitionContext:completion:]+950>
                           <-[UIApplication workspaceDidEndTransaction:]+188>
                            <-[FBSSerialQueue _performNext]+192>
                             <-[FBSSerialQueue _performNextFromRunLoopSource]+45>
                              <__CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__+17>
                               <__CFRunLoopDoSources0+556>
                                <__CFRunLoopRun+867>
                                 <CFRunLoopRunSpecific+488>
                                  <-[UIApplication _run]+402>
                                   <UIApplicationMain+171>
                                    <main+117>

4
質問のタイトルと(編集された)質問の不一致。@utogariaは元の正しい答えをあなたに与えました。
Aleksa

回答:


81

これは9b5のバグです:https ://forums.developer.apple.com/thread/13683

アップルにレーダーを提出します。


30
このバグはXcode 7.0(7A220)にも存在します。新しい空のプロジェクトを作成し、info.plistでUIViewControllerBasedStatusBarAppearanceをNOに設定することで、簡単に再現できます。
ボード

13
上記のリンクで、Appleのスタッフはただ答えました:「確かに、エラーメッセージの根本的な原因は、アプリが非表示などのステータスバーのタイプを使用する場合のiOSの問題です。」および「この警告は無視できます。 」
samthui7 2015

2
私は、同じ問題の下に観察するiOS 9.2Xcode 7.2
モハメド・サレー

140

このメニューから環境変数を設定できます:製品->スキーム->スキームの編集。「実行」項目の下の「引数」タブを見つけます。タブに「環境変数」が表示されますCG_CONTEXT_SHOW_BACKTRACE。その値を追加してYESに設定します。


1
この番組CGコンテキストの合計バックトレースを...が判明し、それは私のボタンを使って何も藤堂を持っているおかげで...それはUIStatusBarItemViewだ...
l1ghthouse

3
xib / storyboardファイルを再確認して、カスタマイズされたUIButton、UIBarButtonItemなどの背景画像が設定されているかどうかを確認してください。画像が正しく設定されていない場合(画像ファイルがないなど)、あなたが持っているような警告。
utogaria

ダブルチェック..すべての画像が正しく設定されています..それらはすべてAssets.xcassetsにあります私はボタンを削除しました..同じエラーが
引き続き

1
もう1つ試すことができます。Xcodeで、「ブレークポイントナビゲーター」に移動し、「例外ブレークポイント」を追加します。アプリを実行して、例外ブレークポイントがトリガーされるかどうかを確認します。もしそうなら、あなたは何が起こるかをより深く見ることができるかもしれません。
utogaria

それが機能する場合は、UIパーツに関連するエラーをデバッグするのに非常に適しています。
Arpit B Parekh

29

この問題はXcode 7で発生します。私の場合、UIViewControllerBasedStatusBarAppearanceを削除しInfo.plistて問題を解決しました!この投稿の答えを見てください:


あなたの解決策も私にとってうまくいきましたが、UIStatusbarを白のままにしたい場合はどうなりますか?
swiftBoy 2015年

ほとんどの人UIViewControllerBasedStatusBarAppearanceは必要なだけで設定したと思っていたので、これは「修正」だとは思いませんでしたが、この回答には19の賛成票があるため、間違いでした:p
superarts.org

はい、あなたに賛成です。私はこのリンクでステータスバーの色を変更する解決策を見つけました:stackoverflow.com/a/32675066/1095530
Weles

ここで働く、およびステータスバーを非表示にするには、かつての道が廃止されているため、一部の人々は、PLISTでこれを必要としない
ノアティボー

-6

Xcode 7の場合:

それでもステータスバーを非表示にする場合UIViewControllerBasedStatusBarAppearanceは、Info.plistファイルをに変更しますView controller-based status bar appearance。設定することを忘れないでくださいNO


2
これは意味がありません。UIViewControllerBaseStatusBarAppearanceおよびとView controller-based status bar appearance同じですInfo.plist。1つはキー値で、もう1つはユーザー向けのテキストです。
esttorhe 2016
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.