【问题标题】:CGContextSaveGState: invalid context 0x0 Error only on deviceCGContextSaveGState:无效上下文 0x0 仅在设备上出错
【发布时间】:2015-08-26 20:33:28
【问题描述】:

更新:我正在使用 XCode 7 Beta 和 Swift 2.0

当我尝试在 iPhone 上运行我的应用时,出现以下 3 个错误:

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

当我启用 CG_CONTEXT_SHOW_BACKTRACE 变量时,我得到这个:

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>

我不确定如何解释这个问题,我没有在我的代码中使用任何 CoreGraphics 内容,并且其他类似问题的答案对我不起作用。我知道在没有代码的情况下很难帮助调试,但我无法弄清楚与此相关的代码,所以如果有人有想法,我可以发布更多代码。

【问题讨论】:

标签: xcode core-graphics xcode7


【解决方案1】:

根据我的实验,这似乎是由于在Info.plist 中定义了UIViewControllerBasedStatusBarAppearance

它发生在 iOS 9(测试版和 GM)上,但不会发生在 8.4 上。

【讨论】:

  • 哇,谢谢,这就是原因......我会提交一张票
  • 在 Xcode 7.0 的发布版本中仍然会发生这种情况。
  • 这个还在 XCode 7 GM、iOS9 GM 中。但是,检查一下:将UIViewControllerBasedStatusBarAppearance 设置为 YES(即使状态栏是隐藏的,这也是我一开始将其设置为 NO 的原因),警告就会消失。疯了!
  • @Olie:你的回答对我有用。您应该将其作为答案而不是评论。
  • might help 这里是苹果thread,其中苹果员工说,这个警告现在可以避免,这是一个已知问题。
【解决方案2】:

根据@JimRota 的建议,将其转为答案,因为它被认为有帮助:

这个还在 XCode 7 GM、iOS9 GM 中。但是,请检查一下:将 UIViewControllerBasedStatusBarAppearance 设置为 YES(即使状态栏是隐藏的,这也是我将其设置为 NO 的原因),然后警告就会消失。疯了!

然后我不得不将它添加到我的视图控制器中以隐藏状态栏:

- (BOOL) prefersStatusBarHidden
{
    return YES;
}

对我来说,我所有的 VC 实际上都继承自 ProjectNameViewController,所以简化了一点。

【讨论】:

    【解决方案3】:

    我在 xcode 7 GM 版本上得到了同样的东西,我认为我只是忽略它们,因为一切正常,但它很烦人,即使他们承认这是一个错误,只是还没有修复它。 Dev Forum Posting

    【讨论】:

      【解决方案4】:

      从上面给出的 cmets 来看,这是真正的修复方法:

      UIViewControllerBasedStatusBarAppearance to YES in Info.plist
      

      【讨论】:

        【解决方案5】:

        在 iOS9 beta5 上编译我的项目时,我也得到了这个(包括编辑部分)。在 iOS8 上编译时很好。

        它发生在我的 App Delegate 中,在执行任何命令之前

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

        所以它似乎比我们的问题更可能是 iOS 测试版问题。

        【讨论】:

        • 我补充说我正在使用 XCode 7 beta 和 swift 2,但我认为这也发生在 XCode 7 上,
        【解决方案6】:

        在使用非整数值作为可调整大小图像的插图时,我遇到了相同类型的错误,如下所示:

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

        这导致了这种日志。使用整数值解决了这个问题。

        【讨论】:

          【解决方案7】:

          我遇到了这个错误。那是因为我创建了一个函数,忘记添加返回值了。

          -(void)doSomething
          

          对比

          -doSomething
          

          呃。

          【讨论】:

            猜你喜欢
            • 2015-12-14
            • 1970-01-01
            • 2015-12-06
            • 1970-01-01
            • 1970-01-01
            • 2013-10-30
            • 2012-09-27
            • 2013-09-30
            相关资源
            最近更新 更多