GKLocalPlayer.authenticated始终返回false

时间:2016-01-04 12:58:56

标签: ios swift

我在我的应用中使用了Game Center,而且我遇到了GKLocalPlayer.authenticated属性的问题。无论身份验证过程是否成功,localPlayer.authenticated始终返回false。如果我的设备已登录到Game Center,也会发生这种情况。 我在实际设备(iPhone 6s)和模拟器(尝试了几个)上得到了这个。

我发现的唯一信息表明时间设置存在问题,但似乎没问题。

这是一个错误还是我做错了什么?任何帮助将不胜感激!

下面的代码来自我的单身GameKitHelper类,所以这就是为什么事情是静态的。

private static let localPlayer = GKLocalPlayer()

static func authenticateLocalPlayer() {
    localPlayer.authenticateHandler = { (viewController, error) -> Void in
        if let viewController = viewController {
            if let rootViewController = UIApplication.sharedApplication().keyWindow?.rootViewController {
                rootViewController.presentViewController(viewController, animated: true, completion: nil)
            }
        } else if localPlayer.authenticated {
            gameCenterEnabled = true
            let defaultCenter = NSNotificationCenter.defaultCenter()
            defaultCenter.postNotificationName("local_player_authenticated", object: nil)
        } else {
            gameCenterEnabled = false
        }

        if let error = error {
            print(error)
        }
    }
}

static func isAuthenticated() -> Bool {
    return localPlayer.authenticated
}

1 个答案:

答案 0 :(得分:3)

我的不好,看起来我在从Objective-C翻译代码时犯了一个小错误。它应该是

GKLocalPlayer.localPlayer()

GKLocalPlayer()