authenticateWithCompletionHandler:已被弃用:首次在iOS 6.0中弃用。

7

我正在开发一个使用Game Center的游戏,但是我遇到了以下警告:

... 'authenticateWithCompletionHandler:'已经被弃用:自iOS 6.0起首次被弃用

我进行了搜索并发现有新的代码可以验证本地用户,所以我替换了旧代码:

旧代码:

- (void)authenticateLocalUser {

    if (!gameCenterAvailable) return;

    NSLog(@"Authenticating local user...");
    if ([GKLocalPlayer localPlayer].authenticated == NO) {
        [[GKLocalPlayer localPlayer] authenticateWithCompletionHandler:nil];
    } else {
        NSLog(@"Already authenticated!");
    }
}

使用新的:

- (void)authenticateLocalUser {

    if (!gameCenterAvailable) return;

    NSLog(@"Authenticating local user...");

    if ([GKLocalPlayer localPlayer].authenticated == NO) {

        GKLocalPlayer *localPlayer = [GKLocalPlayer localPlayer];
        [localPlayer setAuthenticateHandler:(^(UIViewController* viewcontroller, NSError *error) {
        //[localPlayer authenticateWithCompletionHandler:^(NSError *error) { OLD CODE!
            if(localPlayer.isAuthenticated) {
                //do some stuff
            }else {
                // not logged in   
            }
        })]; 
    } else {
        NSLog(@"Already authenticated!");   
    }   
}

除了一个问题,一切都好。如果用户没有登录,就没有游戏中心登录表单。旧代码会在用户未登录时显示游戏中心登录表单。

我是否需要添加任何额外的代码或其他东西?

额外信息: - 横屏模式 - 部署目标:6.0

1个回答

10

是的,在iOS6中,您必须手动呈现登录表单,这样可以更好地控制何时呈现屏幕。请尝试一下。

localPlayer.authenticateHandler = ^(UIViewController *viewController,NSError *error) {
if (localPlayer.authenticated) { 
//already authenticated
} else if(viewController) {
[self presentViewController:viewController];//present the login form
} else {
//problem with authentication,probably bc the user doesn't use Game Center
} 
};

我已经购买了《iOS 5 By Tutorials Second Edition》,并且PDF文件上方显示已完全更新为iOS 6。 - iWizard
我将这个方法放到了我的ViewController中,但是应用程序在这一行崩溃了:[self presentViewController:viewController animated:NO completion:nil]; - iWizard
我会很感激的 :) - Kaan Dedeoglu
请告诉我,如果您知道的话,还有一件事。我已经按照书上的方法实现了它,并且它可以工作,但只有当我检查UI支持纵向模式时才有效。我的游戏仅适用于横向模式。如何解决这个问题?谢谢。 - iWizard
1
我创建了一个类别,尝试下载并将其添加到您的项目中:https://dl.dropbox.com/u/22953018/GKLeaderboardProtocol.zip - Kaan Dedeoglu
显示剩余5条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接