我对GKScore有疑问。有一种称为report(_:withCompletionHandler:)的方法。如果您失去Internet连接会怎样?我需要保存分数并稍后提交吗?或方法本身解决。不会自动在后台发送吗?在此先感谢
您可以尝试将其置于飞行模式。
但是,如果您尝试在没有互联网的情况下调用此方法,它将返回错误。
您可以使用可达性来获取Internet连接状态。如果使用Alamofire,它将集成一个非常好的可达性系统。
如果您的游戏需要互联网才能玩,您可以使用以下方法阻止您的主屏幕:
import Alamofire
extension NetworkReachabilityManager {
static var isConnectedToInternet: Bool {
return NetworkReachabilityManager().isReachable
}
}
否则,您可以保存您的请求以在有互联网时发送。启用和禁用Internet时,NetworkReachabilityManager会向您发送通知。
摘自Apple的Game Center编程文档:
您的游戏应创建得分对象,并将得分报告给游戏赢得分数后立即居中。这样设置日期和时间准确,并确保正确报告分数。如果由于某种原因,由于网络原因无法报告分数错误,网络游戏包会自动重新发送数据可用。
因此您无需执行任何操作。参考文档为here。