斯威夫特游戏中心排行榜未显示任何分数



嗨,我在 swift 中无法将分数放在我的排行榜上。连接中的一切都很好。我以前成功地完成了排行榜,但在目标 c 中。我想知道是否有我缺少的快速错误。提交新分数时没有收到任何错误。我创建了一个游戏中心助手类,我通过它完成所有游戏中心,如下所示:

谢谢!!是的,我的身份证都是正确的

Swift GameCenterHelper

import Foundation
import GameKit
class GameCenterHelperSwift: NSObject, GKGameCenterControllerDelegate {
var leaderboardIdentifier: String? = nil
var gameCenterEnabled: Bool = false
var myViewController: UIViewController!

init(VC:UIViewController){
    myViewController = VC
}

func openLeaderBoard(id: String) {
    var gameCenter = GKGameCenterViewController()
    gameCenter.gameCenterDelegate = self
    gameCenter.leaderboardIdentifier = id
    self.myViewController.presentViewController(gameCenter, animated: true, completion: nil)
}
func authenticateLocalPlayer()
{
    var localPlayer = getLocalPlayer() // see GKLocalPlayerHack.h
    localPlayer.authenticateHandler =
        { (viewController : UIViewController!, error : NSError!) -> Void in
            if viewController != nil
            {
                self.myViewController.presentViewController(viewController, animated:true, completion: nil)
            }
            else
            {
                if localPlayer.authenticated
                {
                    self.gameCenterEnabled = true
                    localPlayer.loadDefaultLeaderboardIdentifierWithCompletionHandler
                        { (leaderboardIdentifier, error) -> Void in
                            if error != nil
                            {
                                print("error")
                            }
                            else
                            {
                                self.leaderboardIdentifier = leaderboardIdentifier
                                println("(self.leaderboardIdentifier)") 
                            }
                    }
                }
                else
                {
                    println("not able to authenticate fail")
                    self.gameCenterEnabled = false
                    if (error != nil)
                    {
                        println("(error.description)")
                    }
                    else
                    {
                        println(    "error is nil")
                    }
                }
            }
    }
}
func gameCenterViewControllerDidFinish(gameCenterViewController: GKGameCenterViewController!) {
    gameCenterViewController.dismissViewControllerAnimated(true, completion: nil)
}

func saveHighscore(id: String, Score: Float){
    if GKLocalPlayer.localPlayer().authenticated {
    var scoreReporter = GKScore(leaderboardIdentifier: id)
    scoreReporter.value = Int64(Score);
    var scores = [scoreReporter]
    GKScore.reportScores(scores, withCompletionHandler: { (error : NSError!) -> Void in
        println("reporting")
        if error != nil {
            println("error")
            println("(error.localizedDescription)")
        }else{
            println("nice score!")
        }
    })
    }
}
}

目标C身份验证黑客(工作正常,欢迎回来)

//  GKLocalPlayerHack.h
// Issue with GameKit and Swift
// http://stackoverflow.com/questions/24045244/game-center-not-authenticating-using-   swift
#import <GameKit/GameKit.h>
@interface GKLocalPlayerHack : NSObject
GKLocalPlayer *getLocalPlayer(void);
@end
// GKLocalPlayerHack.m
// Issue with GameKit and Swift
// http://stackoverflow.com/questions/24045244/game-center-not-authenticating-using-swift
#import "GKLocalPlayerHack.h"
@implementation GKLocalPlayerHack
GKLocalPlayer *getLocalPlayer(void)
{
return [GKLocalPlayer localPlayer];
}
@end

排行榜 Id 的格式已更改。

而不是"come.company.id"

现在它只是

"id"

最新更新