即使您的互联网连接丢失,方法 report(_:withCompletionHandler:) 是否会发送分数?

Does method report(_:withCompletionHandler:) send score even if your internet connection was lost?

我有一个关于 GKScore. There is a method called report(_:withCompletionHandler:) 的问题。如果您失去互联网连接会发生什么。我需要保存我的分数并稍后提交吗?或者方法本身就解决了。不是后台自动发送的吗? 提前致谢

你可以试试把飞机模式。

但如果您尝试在没有互联网的情况下调用此方法,它将 return 一个 错误

您可以使用可达性获取互联网连接状态。如果你使用 Alamofire 它集成了一个非常好的可达性系统。

如果您的游戏需要联网才能玩,您可以使用以下方式屏蔽您的主屏幕:

import Alamofire

extension NetworkReachabilityManager {
    static var isConnectedToInternet: Bool {
        return NetworkReachabilityManager().isReachable
    }
}

否则,您可以保存您的请求,以便在有互联网时发送。 NetworkReachabilityManager 会在启用和禁用互联网时向您发送通知。

来自 Apple 的 Game Center 编程文档:

Your game should create the score object and report the score to Game Center immediately after the score is earned. This sets the date and time accurately and ensures that the score is reported correctly. If for some reason the score could not be reported because of a network error, Game Kit automatically resends the data when the network becomes available.

因此您无需执行任何操作。对文档的引用是 here.