我正在创建像支持Game Center的应用程序这样的游戏。当玩家正确认证游戏中心但在我想报告我的分数时网络(wifi或手机)不可用时,我在向排行榜报告得分时遇到问题。
我的应用适用于iOS 5.0及更高版本,根据文档 - Leaderboards - 它应该像他们说的那样工作 - 我只使用函数
- (void)reportScoreWithCompletionHandler:(void (^)(NSError *error))completionHandler and
和
如果出于某种原因,由于a而无法报告分数 网络错误,Game Kit会自动重新发送数据 网络变得可用。
但是当我关闭wifi,玩这个游戏并在此离线模式下报分时,我的分数在我重新上线时没有报告! :(与我的成就有同样的问题。是否有任何技巧或已知问题?或者此功能仅适用于实时应用而非测试?
非常感谢。
答案 0 :(得分:0)
我一直在看一些类似的问题。这不是答案,但可能指向问题。与NathanChristie的答案相反,当WiFi被禁用时,您可以通过身份验证,因为我刚刚尝试使用飞行模式进行相同的操作,并且即使没有网络也能够对我的用户进行身份验证。同样发生的事情是,Game Center似乎有一个旧的verison,我的成就被缓存并在被问及时显示。可能是如果您尝试报告和实现或排行榜更新,并且数据的缓存版本无法识别它,那么它将忽略更新。如果我收到更多信息,我会更新。
答案 1 :(得分:-1)
禁用互联网连接后,您无法通过游戏中心进行身份验证。如果从未进行任何身份验证,则无法利用Apple的自动重新提交。它们支持用户已成功通过身份验证然后网络不可用的用例。
基本上,如果您在进行身份验证后调用reportScore:forLeaderboardID:
,无论您是否有网络连接,Apple都应自动提交您的分数对象(在某个未定义的时间/间隔)。