【问题标题】:GameCenter - GKTurnBasedMatch.loadMatchesWithCompletionHandler returns nil arrayGameCenter - GKTurnBasedMatch.loadMatchesWithCompletionHandler 返回 nil 数组
【发布时间】:2016-05-20 01:05:10
【问题描述】:

我为我的游戏设置了 GameCenter 回合制比赛。现在我只是想显示当前 GK 玩家的当前比赛列表。

这是我的代码:

  GKTurnBasedMatch.loadMatchesWithCompletionHandler { (matchesOpt, errorOpt) in

    if let error = errorOpt {
      print("Error loading matches: \(error.localizedDescription)")
    } else if let matches = matchesOpt {
      self.matches = matches
      self.gamesTableView.reloadData()
    } else {
      print("Matches array is nil")
    }
  }
}

第三种情况总是命中,matches 数组为 nil。

我认为应该有比赛。我正在使用

GKTurnBasedMatch.findMatchForRequest 

开始比赛,它正在成功。此外,如果我从 findMatchForRequest 中记下匹配的 matchId,然后我调用

GKTurnBasedMatch.loadMatchWithID(matchId)

它使用正确的匹配数据和所有内容找到匹配项。

有谁知道我如何让 loadMatchesWithCompletionHandler 返回可以通过 id 检索的相同游戏?

编辑:这是验证码:

GKLocalPlayer.localPlayer().authenticateHandler = { (viewControllerOpt, errorOpt) in

  NSLog("GK local player authentication finished. Error: \(errorOpt)")
  if let viewController = viewControllerOpt {
    self.presentViewController(viewController, animated: true, completion: nil)
  }

  GKLocalPlayer.localPlayer().registerListener(self)

} 

【问题讨论】:

  • 可以添加验证本地用户的代码吗?
  • 另一件事要检查,在findMatchForRequestloadMatchWithID 完成处理程序中,尝试转储participants 数组以查看本地播放器处于什么状态。
  • 编辑:添加验证码。
  • @Thunk,无论是在创建匹配之后,还是在使用 loadMatchWithID 检索时,本地播放器的状态都是 Active。未匹配的第二个玩家的状态为 Matching。
  • 可能与此问题无关,但请在您的身份验证处理程序中注意:设置错误时,viewController 将为 nil。因此,他们以您的方式进行编码,如果发生错误,您将打印一条消息,然后立即尝试注册未经身份验证的侦听器。这可能不是这里的问题,但以后可能会咬你。有关详细信息,请参阅stackoverflow.com/a/35677324/1641444

标签: ios iphone game-center gamekit gkturnbasedmatch


【解决方案1】:

最近似乎有很多人遇到过这种情况。不确定它是否相关,但引用的示例一直使用 swift。基于How to list all available GKTurnBasedMatches for a player?,看起来只需创建一个排行榜就可以解决问题。

根据https://stackoverflow.com/a/34056115/1641444 的帖子,Game Center 似乎有时会被惊呆,无论出于何种原因,创建排行榜/成就,甚至只是更改默认设置,都会将其重新启动。

【讨论】:

  • Tunk 是对的,这为我解决了问题。转到 iTunes Connect > 您的应用 > App Store 选项卡 > 查找您的应用版本 > 切换 Game Center 开关并添加排行榜。
猜你喜欢
  • 2018-06-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-18
  • 1970-01-01
  • 2013-02-18
  • 2019-06-20
  • 2017-12-16
相关资源
最近更新 更多