由于iOS 6中对GameKit API的更新,我终于能够以应有的方式实现我的回合制棋盘游戏,完成转弯超时和更好的程序化比赛创建。但是,我遇到了一个我似乎无法解决的问题。我的愿望是让游戏中心对最终用户完全不可见,这样一切都是程序化的,并使用我自己的自定义界面。
因此,我使用自己的自定义表格视图来显示匹配项,而不是默认的GKTurnBasedMatchmakerViewController
。现在,使用-loadMatchesWithCompletionHandler:
方法显示打开的匹配项没有问题。我还使用自定义屏幕创建匹配,直接创建自动匹配(不是问题)和表格视图,加载localPlayer的游戏中心朋友的邀请。由于playersToInvite
属性现在可以使用playerID填充,因此可以在iOS 6中使用。
我的主要问题是处理收件人方面的邀请。让我们说我邀请鲍勃在一场双人比赛中玩我的比赛。现在我似乎无法在Bob的最后找到新邀请的通知。 -handleTurnEvent:
仅针对现有匹配进行调用,或者触摸横幅通知(我无法保证用户会这样做),-handleInviteFromGameCenter:
在这种情况下对我没有任何作用。
我想出检测新邀请并因此更新我的自定义游戏视图控制器的唯一方法是调用-loadMatchesWithCompletionHandler:
方法并检查受邀参与者的lastTurnDate为零的新匹配和现有的公开比赛数组。我在后台每10秒运行一次这项检查,因为我在GKTurnBasedEventHandler
找不到收到新邀请时调用的通知。请帮忙!
编辑:最后,我刚刚实现了一个pull-to-refresh功能。没有实施轮询或其他方法只会浪费用户手机上的数据,所以在我看来,按需刷新是最理想的解决方案。
答案 0 :(得分:0)