iOS开发:当收到Game Center邀请函时,如何获取GKMatch对象?

我正在构build一个使用Game Center的iPhone游戏,而且我很难理解如何开始一个通过接收朋友的邀请而开始的比赛游戏。 文档说这个…

当应用程序直接从另一个玩家接收邀请时,acceptedInvite参数是非零。 在这种情况下,其他玩家的应用程序已经创build了匹配请求,所以这个应用程序的副本不需要创build一个。

据此,我不需要创build一个匹配请求,因为邀请的玩家已经创build了一个。 如果是这样,我该如何获得发送/接收数据到另一个玩家所需的GKMatch对象? 我知道获取GKMatch对象的唯一方法是创build一个匹配请求并调用findMatchForRequest方法,文档说这是我不应该做的。

他们唯一的代码示例涉及创build和使用GKMatchmakerViewController ,我不能使用,因为我创build自己的自定义视图。

非常感谢您的智慧!

我收到了苹果的一位工程师对此的回应,他说的是…

您可以使用自定义视图进行自动匹配,但是如果不使用GKMatchmakerViewController,则无法使用邀请。 所以你应该遵循代码示例。

我想我的用户界面的一致性必须要有一个彻底的突破。

我有一个修复游戏中心邀请问题。 所以请按照下列步骤进行:
1-检查您的推送通知是否在您的游戏中心帐户设置中设置和朋友邀请已启用。
2 – 现在安装最新版本的水果忍者游戏
3打开游戏中心并login,然后放在后台。
4开放水果忍者直接转到新游戏=>多人游戏=> gamecenter
5 – 现在你会看到两个选项(现在邀请朋友和玩在右上angular)
6,现在玩button,所以游戏中心会为你find不请自来的游戏。
7 – 游戏开始时,你可以在右上angular看到你不请自来的朋友的名字。 游戏结束后,直接进入游戏中心的背景和游戏部分,进入游戏列表中的水果忍者。 在这里你会看到最近播放的选项,触摸它。 在这里,您将在列表顶部看到一个玩家姓名(玩过的玩家)触摸该姓名,并立即向他发送朋友请求。
8 – 如果他接受请求goto friends =>(你最近添加的朋友)=>一起玩游戏(水果忍者)=>热门游戏(在右上angular)
9-现在游戏会打开,你会看到GC页面。 点击邀请button,select最近添加的朋友,然后发送,等待他,准备玩。

现在您的gc id已经过validation,您可以邀请您的任何朋友,并可以玩任何游戏(支持邀请function)

尽pipe苹果公司的工程师说过,但如果尝试使用这种方式来邀请而不使用自定义视图,

 [[GKLocalPlayer localPlayer] loadFriendsWithCompletionHandler:^(NSArray *friends, NSError *error) { [GKPlayer loadPlayersForIdentifiers:friends withCompletionHandler:^(NSArray *players, NSError *error) { for (GKPlayer *player in players) { NSLog(@"%@",player.alias); //here I'm just logging the aliases but the array players can be used in any way } }]; 

}];

现在,如果用户从自定义视图中的列表中select玩家,则GKMatchRequest有一个名为playersToInvite的属性,我们可以将这些玩家设置为该属性。 并使用此请求以编程方式创build匹配。

这看起来很可能,但我没有试图说实话