如果网络不可用,Game Center / GameKit 报告分数

Posted

技术标签:

【中文标题】如果网络不可用,Game Center / GameKit 报告分数【英文标题】:Game Center / GameKit reporting score if network is not available 【发布时间】:2012-11-01 21:17:11 【问题描述】:

我正在创建支持 Game Center 的应用程序之类的游戏。当玩家正确地通过游戏中心验证但网络(wifi 或蜂窝网络)在我想要报告我的分数时不可用时,我在向排行榜报告分数时遇到问题。

根据文档,我的应用适用于 ios 5.0 及更高版本 - Leaderboards - 它应该像他们说的那样工作 - 我只使用函数

- (void)reportScoreWithCompletionHandler:(void (^)(NSError *error))completionHandler and 

如果由于某种原因无法报告分数,因为 网络错误时,Game Kit 会自动重新发送数据 网络可用。

但是当我关闭wifi,玩我的游戏并在这种离线模式下报告分数时,我重新在线时没有报告我的分数! :( 我的成就也有同样的问题。有什么技巧或已知问题吗?或者这个功能是否仅适用于实时应用程序而不用于测试?

非常感谢。

【问题讨论】:

【参考方案1】:

我一直看到一些类似的问题。这不是答案,但可能会指出问题所在。与 NathanChristie 的回答相反,您可以在禁用 WiFi 时进行身份验证,因为我刚刚使用飞行模式尝试过同样的事情,即使没有网络也能够让我的用户通过身份验证。同样发生的情况是,Game Center 似乎缓存了我的成就的旧版本,并在被询问时显示这些成就。如果您尝试报告成就或排行榜更新并且数据的缓存版本无法识别它,那么它可能会忽略更新。如果我得到更多信息,我会更新。

【讨论】:

【参考方案2】:

禁用 Internet 连接后,您将无法通过 Game Center 进行身份验证。如果从来没有任何身份验证,您将无法利用 Apple 的自动重新提交。它们支持用户成功通过身份验证然后网络不可用的用例。

基本上,如果您在通过身份验证后调用reportScore:forLeaderboardID:,无论您是否有网络连接,Apple 都应该(在某个未定义的时间/间隔)自动提交您的分数对象。

【讨论】:

以上是关于如果网络不可用,Game Center / GameKit 报告分数的主要内容,如果未能解决你的问题,请参考以下文章

Game Center 排行榜能否支持类似“技能等级”的系统?

iOS 6 Game Center authenticateHandler取消后无法登录

iOS 6 Game Center authenticateHandler 取消后无法登录

再次出示 Game Center 认证

iOS 6 Game Center 在身份验证时崩溃

使用 iOS Game Center Challenge 发送对象?