7

Xcode 4.3.3 を実行しており、iOS 5.1 をターゲットにしています。ゲームに Game Center 機能を含めようとしています。

GKLocalPlayer を認証すると、ユーザーにはGame Center へのサインインアラート ビューが表示されるか、ログインしているように表示されますルート ビュー コントローラーと次のエラーがコンソールから吐き出されます。

<GKModalRootViewController:メモリ アドレス> の外観の遷移を開始/終了するための不均衡な呼び出し。

アプリ デリゲートとルート ビュー コントローラーの間で GKLocalPlayer 認証コードを移動しようとしました。また、新しい空のプロジェクトに認証を実装しようとしました。ストーリーボードとARCの有無にかかわらず試しました。これらすべてのケースで、結果は同じでした: モーダルはルート ビュー コントローラーの背後に隠され、エラーが発生しました。

これは、アプリ デリゲートのapplication:didFinishLaunchingWithOptions:メソッドから呼び出している GKLocalPlayer 認証メソッドです。

- (void)authenticateLocalPlayer
{
    GKLocalPlayer *localPlayer = [GKLocalPlayer localPlayer];
    [localPlayer authenticateWithCompletionHandler:^(NSError *error) {
        if (localPlayer.isAuthenticated) {
            // Perform additional tasks for the authenticated player.
        } else {
            // Disable Game Center features.
        }
        if (error) {
            // Handle error.
        }
    }];
}

これがそのスクリーンショットです。この図では、ルート ビュー コントローラーの背景に 50% のアルファ値が設定されています。このバグにより、モーダルはルート ビュー コントローラーの背後にプッシュされました。

このstackoverflowの質問には、私が見つけることができるこのエラー(GKModalRootViewControllerに関して)への唯一の参照が含まれており、(a.)cocos2dを使用していないため、適合しません。(b.) セグエを実行するかどうかに関係なく発生し、viewWillAppear: または viewDidAppear: に触れていません。(c.) 納得できる回答が得られなかった。

This questionthis oneは同じ問題 (ビュー階層が破棄されている) に関係しているようですが、回答がなく、コンソールのエラー メッセージについて言及していません。

これは他の誰かにも起こりますか?これを引き起こしている可能性のあるアイデアはありますか?

更新 1:初期化の競合を回避するために、認証コードをモーダル ビューのボタンに接続された IBAction に入れるようにしました。役に立ちませんでした。

更新 2:認証コードを GCD バックグラウンド キューに移動しようとしました。彼の結果は同じでした。

これがテスト プロジェクトです (これは、アプリのバンドル ID が既に入力されている GameCenter の準備ができています)

テストする:

  1. テスト デバイス/シミュレーターで Game Center からログアウトします (ログインしている場合)。
  2. アプリをビルドして実行します。
  3. 情報ボタンを押します。
  4. 認証を押します。
  5. Sign in to Game Center アラートが表示されたら、Create New Accountを押します。
  6. キャンセルを押します。
  7. 「Unbalanced calls...」というメッセージがコンソールに表示されましたか? モーダル ビュー (認証ボタン付き) は消えましたか?
  8. 情報ボタンを押します。
  9. モーダルは再び表示されましたか?
4

1 に答える 1

2

このバグは、「Apple が 6.0 で修正したバグ」のリストに表示されます。回避策が必要なのは理解できますが、依存している API にバグがある場合、その可能性はわずかです。

ただし、5.x ユーザーが徐々に減少していることは喜ばしいことです。

あなたのアプリをよろしくお願いします。

于 2013-01-06T18:50:14.677 に答える