所以我一直在阅读文章和Apple开发者库一段时间,但我无法解决这个问题。
我希望我的应用程序有一个游戏中心排行榜,可通过我的游戏菜单访问。但是,由于我使用Sprite Kit创建我的游戏,这导致了一些问题。
我在iTunes Connect中注册了我的应用程序,启用了游戏中心,Xcode中的身份信息与iTunes Connect中的身份信息相匹配。
我创建了一个按钮,应打开游戏中心排行榜。当它被点击时,这称为:
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];
}
}
现在我收到消息,因为没有玩家登录,游戏中心不可用。
要解决此问题,我尝试使用apple中的身份验证方法:
- (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];
}
}];
}
我现在无法定义在身份验证方法中调用这些方法。
我明确的问题:如何验证本地播放器?