我有一个简单的iOS应用程序,它使用了Game Center。但是最近在将其更新到iOS 7时,我注意到authenticate方法不起作用。
其中一个问题是我用来向用户展示视图控制器的代码,如果他们需要登录游戏中心,它不再弹出应用程序中的游戏中心登录窗口。
我遇到的另一个问题是我找不到使用什么方法而不是弃用的“authenticateWithCompletionHandler”。
这是我的代码:
-(void)authenticateLocalUser {
GKLocalPlayer.localPlayer.authenticateHandler = ^(UIViewController *viewController, NSError *error) {
if (GKLocalPlayer.localPlayer.authenticated) {
// Already authenticated
}
else if (viewController) {
[self presentViewController:viewController animated:YES completion:nil];
}
else {
// Problem with authentication, probably bc the user doesn't use Game Center.
}
};
if ([GKLocalPlayer localPlayer].authenticated == NO) {
[[GKLocalPlayer localPlayer] authenticateWithCompletionHandler:^(NSError *error) {
[self callDelegateOnMainThread: @selector(processGameCenterAuth:) withArg:NULL error: error];
}];
}
}
谢谢你的时间,Dan。
答案 0 :(得分:1)
无论我最终成功解决了这个问题。至于' authenticateWithCompletionHandler',我使用了这个:
[[[UIApplication sharedApplication] keyWindow].rootViewController presentViewController:viewController animated:YES completion:nil];