Отправляет ли отчет метода (_:withCompletionHandler:) оценку, даже если ваше интернет-соединение было потеряно?

У меня вопрос по GKScore. Существует метод под названием report(_:withCompletionHandler:). Что произойдет, если вы потеряете подключение к Интернету. Нужно ли мне сохранять свой результат и отправлять его позже? Или это решает сам метод. Разве он не отправляется автоматически в фоновом режиме? заранее спасибо

2 ответа

Решение

Из документации по программированию Apple Game Center:

Ваша игра должна создать объект счета и сообщить о счете в Game Center сразу после его получения. Это точно устанавливает дату и время и гарантирует, что результат будет указан правильно. Если по какой-либо причине счет не может быть сообщен из-за ошибки сети, Game Kit автоматически повторно отправит данные, когда сеть станет доступной.

Так что вам не нужно ничего делать. Ссылка на документы здесь.

Йо может попробовать поставить режим самолета.

Но если вы попытаетесь вызвать этот метод без интернета, он вернет ошибку.

Вы можете получить статус подключения к Интернету, используя доступность. Если вы используете Alamofire, он имеет очень хорошую систему доступности.

Если для вашей игры требуется Интернет, вы можете заблокировать основной экран, используя:

import Alamofire

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

В противном случае вы можете сохранить свой запрос, чтобы отправить его, когда у вас есть Интернет. NetworkReachabilityManager отправит вам уведомление, когда Интернет был включен или отключен.

Другие вопросы по тегам