0

私はゲーム センターのマルチプレイヤー アプリに取り組んでいますが、頭を悩ませるものを見つけました。両方のデバイスで GKMatchmakerViewController が稼働していない限り、ゲームへの招待を問題なく受信できます。ただし、両方のデバイスで開いており、招待状が送信された場合、ユーザーがアラート バナーで [承諾] を選択しても何も起こりません。これを行う方法を示す良い実例はありますか? 私は Ray Wenderlich の GCHelper に取り組んでいますが、この問題について何週間も進展がありません。

    [GKMatchmaker sharedMatchmaker].inviteHandler = ^(GKInvite *acceptedInvite, NSArray *playersToInvite)
    {

        NSLog(@"Received invite!!!");
        self.pendingInvite = acceptedInvite;
        self.pendingPlayersToInvite = playersToInvite;

        Class gcClass = (NSClassFromString(@"GKLocalPlayer"));
        NSString *reqSysVer = @"5.0";
        NSString *currSysVer = [[UIDevice currentDevice] systemVersion];
        BOOL osVersionSupported = ([currSysVer compare:reqSysVer
                                               options:NSNumericSearch] != NSOrderedAscending);

        gameCenterAvailable=gcClass && osVersionSupported;
        if (!gameCenterAvailable) return;

        matchStarted = NO;
        self.match = nil;

        if (acceptedInvite) {
            NSLog(@"pendingInvite != nil");

             AppDelegate *gcdelegate = (AppDelegate *) [UIApplication sharedApplication].delegate;

            [gcdelegate.viewController  dismissModalViewControllerAnimated:YES];
            GKMatchmakerViewController *mmvc = [[GKMatchmakerViewController alloc] initWithInvite:pendingInvite];
            mmvc.matchmakerDelegate = self;
            [gcdelegate.viewController  presentModalViewController:mmvc animated:YES];

            self.pendingInvite = nil;
            self.pendingPlayersToInvite = nil;

            boo_invite=true;


        }
        else {
            NSLog(@"pendingInvite == nil");

            AppDelegate *gcdelegate = (AppDelegate *) [UIApplication sharedApplication].delegate;
            [gcdelegate.viewController dismissModalViewControllerAnimated:NO];

            request = [[GKMatchRequest alloc] init];
            request.minPlayers = 2;
            request.maxPlayers = 4;
            request.playersToInvite = pendingPlayersToInvite;

            GKMatchmakerViewController *mmvc = [[GKMatchmakerViewController alloc] initWithMatchRequest:request];
            mmvc.matchmakerDelegate = self;

            [gcdelegate.viewController dismissModalViewControllerAnimated:YES];

            self.pendingInvite = nil;
            self.pendingPlayersToInvite = nil;

        }


    };

問題は関係していると思います」

警告: プレゼンテーションの進行中にプレゼンテーションを試みてください!

これを修正するにはどうすればよいですか?

4

1 に答える 1