2017-02-14 3 views
0

Игровой центр работал совсем недавно, для другого приложения, которое я создал. Как бы странные вещи не происходили с моим нынешним в течение двух недель.Игровой центр не сохраняет очки

Загрузите и скачайте отчет без ошибок, и я вижу, что мой счет отлично. Но если я перестану играть в свою игру, а затем через 6 часов вернусь к ней, мой счет больше не будет в игровом центре. Я имею в виду, буквально никакого результата. Загрузка из игрового центра, который работает 6 часов назад, теперь не может получить мой результат.

Игровой центр находится в режиме реального времени. Я могу видеть свою оценку и другие в разделе «Управление счетом». Тем не менее, я не вижу ничего, кроме своего счета в таблице лидеров от GKGameCenterViewController.

Насколько я понимаю, все настроено правильно. Игровой центр в возможностях приложения включен.

Код для показа лидеров:

func showLeaderBoard() { 
    if GKLocalPlayer.localPlayer().isAuthenticated == false { 
     self.present(authenticationViewController!, animated: true, completion: nil) 
     return 
    } 

    let gamecenter = GKGameCenterViewController() 
    gamecenter.gameCenterDelegate = self 
    gamecenter.viewState = .leaderboards 
    gamecenter.leaderboardIdentifier = leaderBoardID 

    present(gamecenter, animated: true, completion: nil) 
} 

Код для скачивания оценки:

func downloadBestScoreFromGameCenter() { 
    if GKLocalPlayer.localPlayer().isAuthenticated == false {return} 
    print("Downloading Score...") 

    let leaderBoard = GKLeaderboard() 
    leaderBoard.identifier = leaderBoardID 
    leaderBoard.loadScores(completionHandler: { 
     [unowned self] (scores, error) in 

     print("Download Error: \(error)") 

     scores?.forEach({print("\($0.player?.displayName!) \($0.value)")}) 

     if let localPlayerScore = leaderBoard.localPlayerScore?.value { 
      self.bestScore = Int(localPlayerScore) 
      self.saveGameForCurrentState() 
     } else { 
      self.bestScore = 0 
     } 
    }) 
} 

И загрузив

func uploadBestScoreToGameCenter() { 
    if GKLocalPlayer.localPlayer().isAuthenticated == false {return} 

    let scoreItem = GKScore(leaderboardIdentifier: leaderBoardID) 
    scoreItem.value = Int64(self.bestScore) 

    GKScore.report([scoreItem], withCompletionHandler: { 
     (error) in 
     if let error = error { 
      print(error) 
     } else { 
      print("Upload complete: \(scoreItem.value)") 
     } 
    }) 
} 

ответ

0

Ок лидеров теперь работают сегодня. Думаю, тебе просто нужно ждать людей.

Смежные вопросы