如果网络不可用,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取消后无法登录