cow*_*boo 5 iphone gamekit ios game-center gkturnbasedmatch
我正在研究一个简单的回合制文字游戏,我很难搞清楚邀请是如何工作的.当用户A邀请用户B参加游戏时,我希望用户B能够在我的自定义匹配界面(即列出所有用户B的游戏的屏幕)中看到该游戏.如果用户B在被邀请参加游戏时点击通知,情况会很好,但如果用户B只是自己导航到应用程序,我仍然希望通过我自己的界面看到游戏.
每当出现这个匹配界面屏幕时,我都会[GKTurnBasedMatch loadMatchesWithCompletionHandler:]用来获取所有本地玩家的比赛.有了这个,我会假设用户B能够看到他被邀请参加的比赛,但这个新比赛没有出现.如果我通过该接受邀请GKTurnBasedMatchmakerViewController,则用户按预期进入游戏,但更令人费解的是,如果我打开我的GKTurnBasedMatchmakerViewController然后取消而不接受邀请,现在我的自定义匹配界面中会出现一个新的匹配,但它缺少用户A发送的匹配数据.
总而言之,我真的只是想知道如何GKTurnBasedMatch使用自定义界面正确显示和接受邀请(而不是必须使用GKTurnBasedMatchmakerViewController).谢谢!
这个问题似乎有几个人感兴趣,所以这是我最终所做的一个粗略的近似。
首先,新比赛根本没有出现的原因是我没有[GKTurnBasedMatch loadMatchesWithCompletionHandler:]像我想象的那样每次都调用视图刷新。所以我记得没有真正的问题。
真正的问题是我正在接收并显示新的GKTurnBasedMatch,但没有任何数据(即对方玩家的第一步)可用。从本质上讲,[GKTurnBasedMatch loadMatchesWithCompletionHandler:]似乎并不能保证为您提供最新的可用GKTurnBasedMatch对象。为了确保匹配是最新的,我还必须在(其中是 GKTurnBasedMatches 之一)[match loadMatchDataWithCompletionHandler:]返回的每个匹配上调用 , 。这将作为对象返回与该匹配关联的最新匹配数据。然后,我可以使用它来确保刷新比赛表中的所有比赛,以反映游戏中心的最新变化。[GKTurnBasedMatch loadMatchesWithCompletionHandler:]matchNSDataNSData
简而言之,loadMatchDataWithCompletionHandler在您的GKTurnBasedMatch对象上使用以确保其数据是最新的。
| 归档时间: |
|
| 查看次数: |
750 次 |
| 最近记录: |