0

私はリーダーボードを次のように呼んでいます:

-(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'

これは正常ですか?

4

2 に答える 2

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 で作成したリーダー ボードの識別子です。お役に立てれば。

編集:まだ問題があるため、これらのチュートリアルをチェックしてください。リーダーボードと実績に関するすべてを網羅しています。

第一部

第二部

于 2012-05-02T22:58:37.837 に答える
0

presentModalViewControllerメッセージを認識しないオブジェクトにメッセージを送信しています。したがって、「Game.m」ファイルに記述したクラスは から継承されませんUIViewController。使用しているフレームワークはわかりませんが、UIViewControllerインスタンスを初期化して GameCenter ビューを表示する必要があります。

于 2015-12-11T15:53:51.360 に答える