我有一个单独的类来处理我所有的游戏中心。我已将其设置为GKAchievementViewControllerDelegate的代表。
我调用以下方法showAchievements
- (void) showAchievements
{
GKAchievementViewController *achievements = [[GKAchievementViewController alloc] init];
if (achievements != nil)
{
achievements.achievementDelegate = self.delegate;
[self.viewController presentModalViewController: achievements animated: YES];
}
}
我实现了以下
- (void)achievementViewControllerDidFinish:(GKAchievementViewController *)achievements
{
[self.viewController dismissModalViewControllerAnimated: YES];
}
在调用showAchievements
之前,我使用以下代码设置了self.viewController AppController* appDelegate = (AppController*)[[UIApplication sharedApplication] delegate];
[GameCenterManager instance].viewController = appDelegate.window.rootViewController;
当我调用showAchievements时,应用程序崩溃并且控制台日志中会显示以下内容。
Jul 16 12:36:28 imac-3 myApp[17103] <Info>: 12:36:28.287698 com.apple.AVConference: GKSConnSettings: set server: {
"gk-cdx" = "17.173.254.218:4398";
"gk-commnat-cohort" = "17.173.254.220:16386";
"gk-commnat-main0" = "17.173.254.219:16384";
"gk-commnat-main1" = "17.173.254.219:16385";
}
在我调用showAchievements时,用户已成功登录。
知道我在这里做错了什么吗?
答案 0 :(得分:0)
我的怀疑是正确的,我试图以错误的方式访问viewController。我应该使用CCDirectorIOS对象而不是UIWindow对象。
答案 1 :(得分:0)
不推荐使用GKAchievementViewController。尝试使用GKGameCenterViewController。