游戏中心呼叫排行榜功能无响应?

时间:2012-05-02 22:50:05

标签: objective-c ios xcode game-center

我这样称呼领导委员会:

-(void)viewscores:(SPEvent*)event
{  

    GKLeaderboardViewController *leaderboardController = [[GKLeaderboardViewController alloc] init];      
    if (leaderboardController != nil) {  
        leaderboardController.leaderboardDelegate = self;  

        UIWindow* window = [UIApplication sharedApplication].keyWindow;  
        [window addSubview: self.rootViewController];  
        [self presentModalViewController: leaderboardController animated: YES];  

    }     
}  

当我点击排行榜按钮时,收到错误:

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '+[UIViewController presentModalViewController:animated:]: unrecognized selector sent to class 0x3e2fc7f8'

这是正常的吗?

2 个答案:

答案 0 :(得分:2)

您应该在viewController中调用该函数。在我的一个应用程序中,代码如下所示:

-(IBAction)showLeaderBoard {

    GKLeaderboardViewController *leaderBoardCont = [[GKLeaderboardViewController alloc] init];
    if (leaderBoardCont) {
        leaderBoardCont.category=@"1S";
        leaderBoardCont.timeScope=GKLeaderboardTimeScopeWeek;
        leaderBoardCont.leaderboardDelegate=self;
        [self presentModalViewController:leaderBoardCont animated:YES];
    }

}

然后你还应该实现委托方法:

-(void) leaderboardViewControllerDidFinish:(GKLeaderboardViewController *)viewController {

    [self dismissModalViewControllerAnimated:YES];
    viewController = nil;
}

此处1S是您在iTunes Connect中创建的排行榜的标识符。希望这会有所帮助。

编辑:由于您仍然遇到问题,请查看这些教程。它们涵盖了关于排行榜和成就的所有内容。

1st part

2nd part

答案 1 :(得分:0)

您正在将presentModalViewController消息发送给无法识别它的对象。因此,您在“Game.m”文件中编写的类不会继承自UIViewController。不知道你正在使用什么框架,但你必须初始化一个UIViewController实例来显示GameCenter视图。