web-dev-qa-db-ja.com

CGContextSaveGState:デバイスでのみ無効なコンテキスト0x0エラー

更新:XCode 7 BetaをSwift 2.とともに使用しています

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コンテンツを使用していない、そして他の同様の質問には私にとってうまくいかない答えがあった。コードなしでデバッグするのは難しいことは理解していますが、これに関連するコードがわからないため、誰かがアイデアを持っている場合は、さらにコードを投稿できます。

26
mattgabor

私の実験から、これはInfo.plistUIViewControllerBasedStatusBarAppearanceを定義しているためと思われます。

IOS 9(ベータおよびGM)で発生しますが、8.4では発生しません。

52
Mark Krenek

@JimRotaの提案で、これが役に立つと判断されたため、これを回答に移動しました。

これはXCode 7 GM、iOS9 GMにまだありました。しかし、チェックしてください:UIViewControllerBasedStatusBarAppearanceをYESに設定します(ステータスバーが非表示になっているため、最初はNOに設定します)。警告は消えます。クレイジー!

ステータスバーを非表示にするには、View Controllerにこれを追加する必要がありました。

- (BOOL) prefersStatusBarHidden
{
    return YES;
}

私にとって、すべてのVCは実際にProjectNameViewControllerから継承しているため、少し簡略化しています。

11
Olie

xcode 7 GMリリースで同じことを取得していますが、バグが認められてまだ修正されていないにもかかわらず、すべてが機能するのでかなり迷惑です。 開発フォーラムへの投稿

2
user3099837

上記のコメントから、これは修正する実際の方法です:

UIViewControllerBasedStatusBarAppearance to YES in Info.plist
2
Logic

IOS9 beta5でプロジェクトをコンパイルするときに、これも(編集部分を含む)取得しています。 iOS8でコンパイルする場合は問題ありません。

からコマンドを実行する前に、App Delegateで発生します

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

そのため、私たちよりもiOSベータ版の問題である可能性が高いようです。

1
Peter Johnson

次のように、サイズ変更可能な画像のインセットとして整数以外の値を使用すると、同じタイプのバグが発生しました。

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

これにより、この種のログが発生しました。整数値を使用して問題を修正しました。

0
madewulf