所以我一直在阅读文章和 Apple 开发人员库,但我无法解决这个问题。
我想为我的应用程序创建一个 Game Center 排行榜,可以通过我的游戏菜单访问。但是,由于我使用 Sprite Kit 来创建我的游戏,这给我带来了一些问题。
我在 iTunes Connect 中注册了我的应用程序,启用了 Game Center,并且 Xcode 中的身份信息与 iTunes Connect 中的身份信息相匹配。
我创建了一个按钮,它应该打开 Game Center 排行榜。当它被点击时,这被称为:
GKLeaderboardViewController *leaderboardController = [[GKLeaderboardViewController alloc] init];
if (leaderboardController != NULL)
{
leaderboardController.timeScope = GKLeaderboardTimeScopeAllTime;
leaderboardController.leaderboardDelegate = self;
GKGameCenterViewController *gameCenterController = [[GKGameCenterViewController alloc] init];
if (gameCenterController != nil)
{
gameCenterController.viewState = GKGameCenterViewControllerStateLeaderboards;
UIViewController *vc = self.view.window.rootViewController;
[vc presentViewController: gameCenterController animated: YES completion:nil];
}
}
现在我收到消息,Game Center 不可用,因为没有玩家登录。
为了解决这个问题,我尝试使用苹果的身份验证方法:
- (void) authenticateLocalPlayer
{
GKLocalPlayer *localPlayer = [GKLocalPlayer localPlayer];
localPlayer.authenticateHandler = ^(UIViewController *viewController, NSError *error){
if (viewController != nil)
{
//showAuthenticationDialogWhenReasonable: is an example method name.
[self showAuthenticationDialogWhenReasonable: viewController];
}
else if (localPlayer.isAuthenticated)
{
//authenticatedPlayer: is an example method name.
[self authenticatedPlayer: localPlayer];
}
else
{
[self disableGameCenter];
}
}];
}
我现在无法定义在身份验证方法中调用的这些方法。
我的明确问题:我如何验证本地玩家?