GKMatchMaker邀请处理程序已弃用

3 objective-c gamekit ios game-center

我有以下代码,我以前用来处理邀请:

[GKMatchmaker sharedMatchmaker].inviteHandler = ^(GKInvite *acceptedInvite, NSArray *playersToInvite) {
    // Insert game-specific code here to clean up any game in progress.
    if (acceptedInvite) {
        GKMatchmakerViewController *mmvc = [[GKMatchmakerViewController alloc] initWithInvite:acceptedInvite];
        mmvc.matchmakerDelegate = self;
        [self presentViewController:mmvc animated:YES completion:nil];
    }
};
Run Code Online (Sandbox Code Playgroud)

但是,现在它已被弃用了iOS 7.我在哪里以及如何在项目中注册GameKit邀请处理程序?

And*_*rew 5

GKInviteEventHandler来救援,特别是看看GKLocalPlayerListener.

符合GKLocalPlayerListener协议,你应该没问题.下面是协议方法,它们看起来是invitationHandler的预期替代品,但分为两部分.

- (void)player:(GKPlayer *)player didAcceptInvite:(GKInvite *)invite
- (void)player:(GKPlayer *)player didRequestMatchWithPlayers:(NSArray *)playerIDsToInvite
Run Code Online (Sandbox Code Playgroud)

设置一些符合要求的对象后,您只需拨打电话即可registerListener:.

[[GKLocalPlayer localPlayer] registerListener:yourObjectHere]
Run Code Online (Sandbox Code Playgroud)

不要担心尽快注册它,因为系统会缓存基于邀请/挑战/回合的内容,如果没有人处理这些内容并让您的听众在设置后立即知道.