我在我的应用中使用了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
}
答案 0 :(得分:3)
我的不好,看起来我在从Objective-C翻译代码时犯了一个小错误。它应该是
GKLocalPlayer.localPlayer()
不
GKLocalPlayer()