游戏中心身份验证处理程序视图控制器始终为零

时间:2014-09-10 07:10:56

标签: ios swift sprite-kit game-center appdelegate

我正试图在一个快速的精灵套件游戏中设置游戏中心。以下内容在我的App Delegate

中完成
func authenticateLocalPlayer(){
    let localPlayer: GKLocalPlayer = GKLocalPlayer.localPlayer()

    localPlayer.authenticateHandler = {(viewController : UIViewController!, error : NSError!) -> Void in
        //handle authentication
        if (viewController != nil){
            self.window?.rootViewController?.presentViewController(viewController, animated: true, completion: nil)
        }
        else{
            if (localPlayer.authenticated){
                gameCenterEnabled = true

                //Get the default leaderboard identifier.
                localPlayer.loadDefaultLeaderboardIdentifierWithCompletionHandler({ (leaderboardIdentifierr: String!, error: NSError!) -> Void in
                    if (error != nil){
                        NSLog("%@", [error.localizedDescription])
                    }
                    else{
                        leaderboardIdentifier = leaderboardIdentifierr
                    }
                })
            }
            else{
                gameCenterEnabled = false
            }

        }
    }
}

我遇到的问题是localPlayer.autheniticateHandler总是返回一个nil viewController,即使我的本地播放器未经过身份验证。请让我知道我做错了什么以及如何解决这个问题。

3 个答案:

答案 0 :(得分:9)

我遇到了同样的问题。

尝试从设备中删除该应用,然后转到游戏中心下的设备设置并启用沙箱。

然后在设备上再次运行游戏,它应显示游戏中心登录窗口。

答案 1 :(得分:0)

我尝试在模拟器中运行我的应用程序,验证窗口很好。我不知道为什么它不能在我的设备上工作。

答案 2 :(得分:0)

对我来说恰好相同。尝试使用相同结果的多个设备。删除应用/更改游戏中心设置无法提供帮助。 你的代码看起来很好。 看起来像Swift的GC完全坏了..