我的GKMatch没有玩家…?

  • 我成功地做了一个配对的屏幕出现。
  • 我在我的iPhone和模拟器中运行我的游戏。
  • 在这两种情况下,我都使用不同的Game Center帐户login。
  • 我在两场比赛中都去参加比赛。 我按“现在玩”。 两场比赛都开始寻找比赛。
  • 最后,两个游戏find一个匹配,并调用下面的函数:

- (void)matchmakerViewController:(GKMatchmakerViewController *)viewController didFindMatch:(GKMatch *)match { self.myMatch = match; NSLog(@"%d",[[self.myMatch playerIDs]count]); } 

但是我的控制台返回0.不是应该返回2吗?

难道你不是真的连接它们吗?

你实际上使用GKMatchmaker和GKMatchmakerViewController吗?

在你的testing中,你确定你正在使用两个不同的游戏中心帐户?

恐怕我不熟悉游戏中心系统 – 但我已经增加了100点奖励,所以你可以希望得到答案!

GKMatchmaker在玩家之间build立连接之前为您返回一场比赛; 在这个阶段,所有的参与者都在相互联系。

playerIDs属性最初设置为已经连接到比赛的玩家的数量; 该数组可能是空的。 每当玩家连接到该匹配时,该玩家的玩家标识符就被添加到该arrays中。

此外,有些玩家可能无法连接(我没有testing过这种情况,所以我不知道是否返回错误)

你在找什么是GKMatch.expectedPlayerCount

只要玩家连接到匹配,该属性的值就会减less。 当它的值达到零时,所有预期的玩家都被连接起来,并且你的游戏可以开始比赛。

我也怀疑GKMatch.playerIDs不包括播放器; 即你连接后可能会立即看到expectedPlayerCount = 1。

我不确定GameKit关于线程的function。