CGContextSaveGState:应用程序启动时无效的上下文 0x0
CGContextSaveGState: invalid context 0x0 at App Launch
我已经将 CG_CONTEXT_SHOW_BACKTRACE
环境变量设置为 YES
因为我有以下错误 CGContextSaveGState: invalid context 0x0
.
以下堆栈跟踪对我帮助不大。
<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>
错误发生在启动时,电池视图似乎有问题。这个错误是否给您敲响了警钟?
FWW 我的应用程序主要是用 Swift 2.0 编写的,在 iOS9 上使用 Xcode 7b6。
当您看到该错误源自您的代码时,这意味着您正在将 NULL
CGContextRef 传递给 Core Graphics API 的某个位(在本例中为 CGContextSaveGState
),这将导致您尝试绘制的任何图无法工作或出现意外行为。
在这种情况下,它不是源自您的代码,因此您对此无能为力——幸运的是,该错误不是致命的,因此您可以安全地忽略它。不过,可能想要 file a bug 使用回溯。
我遇到了同样的问题,原因是我在为不同的屏幕设置不同的状态栏样式。因此,我需要在 plist 中添加 "View controller-based status bar appearance" 键。如果我删除此密钥,警告就会消失。
我已经将 CG_CONTEXT_SHOW_BACKTRACE
环境变量设置为 YES
因为我有以下错误 CGContextSaveGState: invalid context 0x0
.
以下堆栈跟踪对我帮助不大。
<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>
错误发生在启动时,电池视图似乎有问题。这个错误是否给您敲响了警钟?
FWW 我的应用程序主要是用 Swift 2.0 编写的,在 iOS9 上使用 Xcode 7b6。
当您看到该错误源自您的代码时,这意味着您正在将 NULL
CGContextRef 传递给 Core Graphics API 的某个位(在本例中为 CGContextSaveGState
),这将导致您尝试绘制的任何图无法工作或出现意外行为。
在这种情况下,它不是源自您的代码,因此您对此无能为力——幸运的是,该错误不是致命的,因此您可以安全地忽略它。不过,可能想要 file a bug 使用回溯。
我遇到了同样的问题,原因是我在为不同的屏幕设置不同的状态栏样式。因此,我需要在 plist 中添加 "View controller-based status bar appearance" 键。如果我删除此密钥,警告就会消失。