मैं CG_CONTEXT_SHOW_BACKTRACE पर्यावरण चर कैसे सेट कर सकता हूं?


90

मेरे विचार में तीन बटन हैं। ViewDidLoad में कोनेरेडस सेट करने के बाद (): 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 ने आपको मूल सही उत्तर दिया।
अलेक्सा

जवाबों:


81

यह 9b5 में एक बग है:
https://forums.developer.apple.com/thread/13683

Apple के साथ RADAR फाइल करें।


30
यह बग अभी भी Xcode 7.0 (7A220) में मौजूद है। एक नया खाली प्रोजेक्ट बनाकर और आसानी से UIViewControllerBasedStatusBarAppearance की स्थापना करके प्रतिलिपि बनाई जा सकती है।
बोर्ड

13
ऊपर दिए गए लिंक में, Apple के एक कर्मचारी ने बस उत्तर दिया: "वास्तव में, त्रुटि संदेशों का मूल कारण iOS के साथ एक समस्या है जब कोई ऐप कुछ स्टेटस बार प्रकारों का उपयोग करता है, जैसे कि छिपा हुआ।", और "आप इस चेतावनी को अनदेखा कर सकते हैं।" "
samthui7

2
मैं उसी मुद्दे का पालन करता हूंiOS 9.2Xcode 7.2
मोहम्मद सालेह

140

आप इस मेनू के माध्यम से एक पर्यावरण चर सेट कर सकते हैं: उत्पाद -> योजना -> योजना संपादित करें। "रन" आइटम के तहत, "तर्क" टैब का पता लगाएं, आपको टैब में "पर्यावरण चर" दिखाई देगा, CG_CONTEXT_SHOW_BACKTRACEइसके मूल्य को YES में जोड़ें और सेट करें।


1
धन्यवाद यह सीजी संदर्भ की कुल पृष्ठभूमि को दर्शाता है ... यह बताता है कि, मेरे बटन के साथ कुछ भी नहीं है .. यह UIStatusBarItemView है
l1ghthouse

3
क्या आप अपने xib / स्टोरीबोर्ड फ़ाइल में दोहरी जांच करने का प्रयास कर सकते हैं और देख सकते हैं कि क्या कोई अनुकूलित UIButton, UIBarButtonItem, आदि में से किसी के लिए कोई पृष्ठभूमि छवि सेट है या नहीं। यदि छवि सही ढंग से सेट नहीं है (छवि फ़ाइल अनुपलब्ध है, आदि), तो यह भी उत्पन्न कर सकता है। तुम्हारे जैसी चेतावनी।
12

डबल की जाँच की .. सभी छवियों को सही ढंग से सेटअप कर रहे हैं .. वे सभी Assets.xcassets में हैं मैंने भी बटन हटा दिए .. वही त्रुटि दिखाई देती है ..
l1ghthouse

1
एक और चीज़ है जिसे आप आज़मा सकते हैं। Xcode में, "ब्रेकपॉइंट नेविगेटर" पर जाएं, और "एक्सेप्शन ब्रेकप्वाइंट" जोड़ें। एप्लिकेशन चलाएं, और देखें कि क्या यह किसी अपवाद को तोड़ता है। यदि ऐसा है, तो आप देख सकते हैं कि क्या होता है।
उतोगारिया

यदि यह काम करता है तो यह, UI भागों से संबंधित त्रुटि को डीबग करने के लिए एक बहुत अच्छा विचार है।
अर्पित बी पारेख

29

यह समस्या Xcode 7. मेरे मामले में के साथ हो मैं हटाया UIViewControllerBasedStatusBarAppearanceसे Info.plistऔर समस्या हल हो! इस पोस्ट में जवाब देखें :


आपके समाधान ने मेरे लिए भी काम किया, हालांकि, अगर मैं चाहता हूं कि यूआईसैटसबार सफेद रहे?
स्विफ्टबॉय

मैं नहीं समझता कि यह एक "फिक्स" है क्योंकि मैंने सोचा था कि ज्यादातर लोग जो UIViewControllerBasedStatusBarAppearanceकेवल इसलिए सेट करते हैं क्योंकि उन्हें इसकी आवश्यकता थी, लेकिन मुझे पता चला कि मैं गलत था क्योंकि इस उत्तर में 19 upvotes हैं: p
superarts.org

हाँ, मैं आपसे सहमत हूँ। : मैं इस कड़ी में परिवर्तन स्थिति पट्टी के रंग का हल मिल गया stackoverflow.com/a/32675066/1095530
Weles

यहां काम नहीं कर रहे हैं, और कुछ लोगों को प्लिस्ट में इसकी आवश्यकता है क्योंकि स्थिति पट्टी को छुपाने के लिए पूर्व तरीका अब हटा दिया गया है
थाइबट नूह

-6

Xcode 7 पर:

मामले में आप अभी भी चाहते हैं स्थिति पट्टी छिपा हुआ है, बस बदलने UIViewControllerBasedStatusBarAppearanceमें Info.plistमें फ़ाइल View controller-based status bar appearance। इसे सेट करने के लिए मत भूलनाNO


2
इससे कोई मतलब नहीं है; UIViewControllerBaseStatusBarAppearanceऔर View controller-based status bar appearanceएक ही बात पर हैं Info.plist। एक प्रमुख मूल्य है और दूसरा उपयोगकर्ता जो पाठ का सामना कर रहा है।
esttorhe
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.