2017-02-14 2 views
0

Game Center verwendet, um perfekt vor einer Weile für eine andere App, die ich gemacht habe zu arbeiten. Aber merkwürdige Dinge geschehen jetzt seit ungefähr zwei Wochen mit meinem jetzigen.Game Center nicht Saving Scores

Upload und Download-Bericht kein Fehler und ich kann meine Punktzahl gut sehen. Aber wenn ich aufhöre mein Spiel zu spielen und dann 6 Stunden später zurückkomme, ist meine Punktzahl nicht mehr im Spielzentrum. Ich meine, buchstäblich keine Punkte. Das Herunterladen vom Spielzentrum, das vor 6 Stunden funktioniert, kann meine Punktzahl nicht abrufen.

Der Spielcenterstatus ist aktiv. Ich kann meine Punktzahl und andere im Bereich "Score verwalten" sehen. Allerdings kann ich nichts außer meiner Punktzahl in der Bestenliste von GKGameCenterViewController sehen.

Soweit es mich betrifft, wurde alles richtig konfiguriert. Game Center in der App ist aktiviert.

-Code für die Ansicht Rangliste:

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) 
} 

-Code zum Download score:

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 
     } 
    }) 
} 

und das Hochladen

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)") 
     } 
    }) 
} 

Antwort

0

Ok die Rangliste nun arbeitet heute. Ich schätze, du musst nur auf Leute warten.