我希望将游戏迁移到swift,我唯一遇到的问题是阻塞/关闭。这是我不理解的语法,而在Objective C中我会使用:
GKLocalPlayer *localPlayer = [GKLocalPlayer localPlayer];
localPlayer.authenticateHandler = ^(UIViewController *viewController, NSError *error){
if (viewController != nil) {
[self presentViewController:viewController animated:YES completion:nil];
}
}
etc.etc。但我不确定如何在Swift中做同样的事情。我知道这很简单,但我无法让它工作,即使在阅读了Swift书并自己搜索答案之后。我只是一个业余爱好者程序员,所以我对这一切都远非完美。
任何帮助都将不胜感激。
答案 0 :(得分:9)
这就是你在Swift中的表现:
var localPlayer = CGLocalPlayer.localPlayer()
localPlayer.authenticateHandler = {(viewController : UIViewController!, error : NSError!) -> Void in
//handle authentication
}
可以找到关闭文档here。
答案 1 :(得分:4)
这是您使用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))
}
}