0

アプリに Game Center を実装しようとしています。

このチュートリアルを使用しました

私のView Controllerには次のものがあります:

- (IBAction) submitScore
{
    if(self.currentScore > 0)
    {
        [_gameCenterManager reportScore: self.currentScore forCategory: self.currentLeaderBoard];
    }
}

GameCenterManager.m には次のものがあります。

- (void) reportScore: (int64_t) score forCategory: (NSString*) category 
        {
            GKScore *scoreReporter = [[[GKScore alloc] initWithCategory:category] autorelease]; 
            scoreReporter.value = score;
            [scoreReporter reportScoreWithCompletionHandler: ^(NSError *error) 
             {
                     MyLog(@"scoreReporter %@", scoreReporter);
                 [self callDelegateOnMainThread: @selector(scoreReported:) withArg: NULL error: error];
             }];
        }

- (void) callDelegateOnMainThread: (SEL) selector withArg: (id) arg error: (NSError*) err
    {
        dispatch_async(dispatch_get_main_queue(), ^(void)
        {
           [self callDelegate: selector withArg: arg error: err];
        });
    }

- (void) callDelegate: (SEL) selector withArg: (id) arg error: (NSError*) err
{
    MyLog(@"selector %@", selector);
    MyLog(@"delegate %@", delegate);

    assert([NSThread isMainThread]);
    if([delegate respondsToSelector: selector])
    {
        if(arg != NULL)
        {
            [delegate performSelector: selector withObject: arg withObject: err];
        }
        else
        {
            [delegate performSelector: selector withObject: err];
        }
    }
    else
    {
        NSLog(@"Missed Method");
    }
}} 

私のログでは、常に「メソッドを逃した」と書いています。最初のスコア (ex : 35) を報告するために到着しましたが、現在、新しいスコア (ex : 100) を報告することはできません。

NSlog は次のとおりです。

2013-01-25 20:21:25.847 isam[37958:c07] -[GameCenterManager reportScore:forCategory:]_block_invoke_1 scoreReporter <GKScore: 0xb19a3f0>player:G:1677639845 rank:0 date:2013-01-25 19:21:25 +0000 value:50 formattedValue:(null) context:0x0
2013-01-25 20:21:25.847 isam[37958:c07] -[GameCenterManager callDelegate:withArg:error:] selector scoreReported:
2013-01-25 20:21:25.848 isam[37958:c07] -[GameCenterManager callDelegate:withArg:error:] delegate <GameViewController_iPhone: 0xb16d120>
2013-01-25 20:21:25.848 isam[37958:c07] Missed Method

私の問題について Google ですべての件名を読んだと思いますが、正しい解決策を見つけることができません。

4

0 に答える 0