Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS 5.0模拟器:GKLeaderBoardViewController未显示_Ios_Objective C_Ios Simulator_Game Center - Fatal编程技术网

iOS 5.0模拟器:GKLeaderBoardViewController未显示

iOS 5.0模拟器:GKLeaderBoardViewController未显示,ios,objective-c,ios-simulator,game-center,Ios,Objective C,Ios Simulator,Game Center,以下代码在iOS 6.0(模拟器和设备)上运行良好。游戏中心布置得很好。但它在iOS5.0模拟器上什么也不做。不幸的是,我没有配备iOS 5.0的设备,因此我无法检查它是否与模拟器相关 - (void)showLeaderboard:(NSString *)leaderboard { GKLeaderboardViewController * leaderboardViewController = [[GKLeaderboardViewController alloc] init];

以下代码在iOS 6.0(模拟器和设备)上运行良好。游戏中心布置得很好。但它在iOS5.0模拟器上什么也不做。不幸的是,我没有配备iOS 5.0的设备,因此我无法检查它是否与模拟器相关

- (void)showLeaderboard:(NSString *)leaderboard
{
    GKLeaderboardViewController * leaderboardViewController = [[GKLeaderboardViewController alloc] init];
    leaderboardViewController.modalPresentationStyle = UIModalPresentationCurrentContext;
    [leaderboardViewController setCategory:leaderboard];
    [leaderboardViewController setLeaderboardDelegate:self];
    [[[UIApplication sharedApplication] delegate].window.rootViewController presentViewController:leaderboardViewController animated:YES completion:^{
    }];
    [leaderboardViewController release];
}
那么会发生什么呢?没有什么。没有提出任何意见。它不会将任何消息记录到控制台中。它甚至没有到达完成块。 我试着到处玩,这是我设法弄明白的。我使用从
gkleadsboardviewcontroller
继承的CustomLeaderboardViewController,而不是纯
gkleadsboardviewcontroller
,并在shouldAutorotateToInterfaceOrientation方法中放置断点。它不使用上面的代码启动。但是如果我使用
setCategory:nil
而不是
setCategory:排行榜
然后触发断点。仍然没有进一步发生任何事情,也没有调用完成块。
有没有想过为什么会发生这样的事情?

结果只是一个愚蠢的错误。[[UIApplication sharedApplication]delegate].window.rootViewController为零,因为它在iOS 5.0中从未设置过。

请确保您的变量(例如,“排行榜”)都不是非零,因为在这种情况下,Objective C喜欢无声地失败。

需要检查两件事:您确定排行榜和ViewController都不是零吗[[UIApplication sharedApplication]delegate].window.rootViewController非零?排行榜如何?您是否也尝试过在调试和发布之间切换,以确保排行榜不会过早发布?您是否在控制台中看到任何日志输出?是的,您是对的,[[UIApplication sharedApplication]委派].window.rootViewController为零。这是一个多么愚蠢的错误!这就是当你复制粘贴太多时得到的结果:(.Cool!如果你将我的最新答案标记为正确,我将不胜感激。谢谢。