- (void)matchmakerViewController:(GKMatchmakerViewController *)viewController didFindMatch:(GKMatch *)match
{
self.myMatch = match;
NSLog(@"%d",[[self.myMatch playerIDs]count]);
}
但是我的控制台返回0.不应该返回2吗?
答案 0 :(得分:4)
GKMatchmaker在玩家之间建立连接之前返回一个匹配;在这个阶段,所有的球员都在相互联系的过程中。
playerIDs属性最初设置为已连接到比赛的玩家数量;数组可能为空。每当玩家连接到比赛时,该玩家的球员标识符就会被添加到阵列中。
此外,有些玩家可能无法连接(我没有测试过这种情况,所以我不知道你是否收到错误)
您正在寻找的是GKMatch.expectedPlayerCount
只要玩家连接到匹配项,此属性的值就会递减。当它的值达到零时,所有预期的玩家都会被连接,你的游戏就可以开始比赛了。
我还怀疑GKMatch.playerIDs
不包括播放器;即你在连接后可能会立即看到expectedPlayerCount = 1。
我不确定GameKit对线程的作用。
答案 1 :(得分:2)
你真的没有连接它们吗?
你实际上在使用GKMatchmaker和GKMatchmakerViewController吗?
在您的测试中,您确定使用的是两个不同的游戏中心帐户?
我担心我对游戏中心系统并不熟悉 - 但我已经增加了100点赏金,所以你可以希望得到答案!