[英]iOS 5.0 simulator: GKLeaderBoardViewController not showing
以下代碼在iOS 6.0(模擬器和設備)上都可以正常運行。 可以向游戲中心展示所有內容。 但這在iOS 5.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];
}
那會怎樣呢? 沒有。 沒有顯示視圖。 它不會將任何消息記錄到控制台中。 它甚至沒有到達完成塊。 我嘗試玩耍,這是我設法弄清楚的事情。 我使用從GKLeaderboardViewController繼承的GKLeaderboardViewController
而不是純GKLeaderboardViewController
,並將斷點放置在GKLeaderboardViewController
方法中。 上面的代碼不觸發。 但是,如果我使用setCategory:nil
而不是setCategory:leaderboard
則會觸發該斷點。 仍然沒有任何反應,並且不會調用完成塊。 有什么想法為什么會發生這種事情?
原來這只是一個愚蠢的錯誤。 [[UIApplication sharedApplication]委托] .window.rootViewController為nil,因為在iOS 5.0中從未設置過。
確保您的所有變量(例如“排行榜”)都不為零,因為在這種情況下,Objective C會無聲地失敗。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.