使用swift验证GameKit本地播放器

And*_*ard 2 authentication block gamekit swift

我希望将游戏迁移到swift,我唯一遇到的问题是阻塞/关闭.这是我不理解的语法,而在Objective CI中则使用:

GKLocalPlayer *localPlayer = [GKLocalPlayer localPlayer];
localPlayer.authenticateHandler = ^(UIViewController *viewController, NSError *error){
    if (viewController != nil) {
        [self presentViewController:viewController animated:YES completion:nil];
    }
}
Run Code Online (Sandbox Code Playgroud)

etc.etc.但我不确定如何在Swift中做同样的事情.我知道这很简单,但我无法让它工作,即使在阅读了Swift书并自己搜索答案之后.我只是一个业余爱好者程序员,所以我对这一切都远非完美.

任何帮助,将不胜感激.

67c*_*ies 9

这就是你在Swift中的表现:

var localPlayer = CGLocalPlayer.localPlayer()
localPlayer.authenticateHandler = {(viewController : UIViewController!, error : NSError!) -> Void in
    //handle authentication
}
Run Code Online (Sandbox Code Playgroud)

关闭文档可以在这里找到.


Tho*_*lli 5

这是您使用Xcode 6.1 +在Swift中进行身份验证的方式:

    var localPlayer = GKLocalPlayer.localPlayer()
    localPlayer.authenticateHandler = {(viewController : UIViewController!, error : NSError!) -> Void in
        if ((viewController) != nil) {
            self.presentViewController(viewController, animated: true, completion: nil)
        }else{

            println((GKLocalPlayer.localPlayer().authenticated))
        }
    }
Run Code Online (Sandbox Code Playgroud)