GKLeaderboard проблемы с публикацией - PullRequest
2 голосов
/ 24 июня 2011

Я не уверен, занимает ли песочница слишком много времени для обновления или если мой код фанк.

Я просто беру последний введенный счет местных игроков, добавляю к нему еще один счет и пытаюсь опубликовать результат.

Вот мой код:

- (void) reportScore: (int64_t) score forCategory: (NSString*) category
{
GKScore *scoreReporter = [[[GKScore alloc]initWithCategory:category] autorelease];
scoreReporter.value = score;

[scoreReporter reportScoreWithCompletionHandler:^(NSError *error) {
    if (error != nil)
    {
        // handle the reporting error
        NSLog(@"Error reporting score");

    }
}];
}

-(void)postScore:(int64_t)score forCategory:(NSString *)category {

GKLeaderboard *query = [[GKLeaderboard alloc]init];
query.category = category;

if (query != nil)

{

    [query loadScoresWithCompletionHandler: ^(NSArray *scores, NSError *error) {

        if (error != nil){

            // Handle the error.
            NSLog(@"Error loading scores");

        }
        if (scores != nil){

            // Process the score.

            int64_t newScore = query.localPlayerScore.value + score;

            [self reportScore:newScore forCategory:category];


        }



    }];


}

[query release];
}

Спасибо за любую помощь.

РЕДАКТИРОВАТЬ: Таблица лидеров Песочница имеет первый счет, но не будет обновлять последующие оценки.

Ответы [ 2 ]

1 голос
/ 20 марта 2012

С той же проблемой на моем конце.Это даст правильную оценку впервые в сеансе.После этого он продолжает посылать обратно ту же оценку, даже если мы обновим оценку в этой сессии.

0 голосов
/ 12 апреля 2012

Вам необходимо проверить свойство класса GKleaderBoard. Для вашей информации.см. ниже код.

GKLeaderboardViewController * leaderController = [[GKLeaderboardViewController alloc] init];

     if (leaderboardController != NULL)
     {
        leaderController.category = self.currentLeaderBoard;
        leaderController.timeScope = GKLeaderboardTimeScopeWeek;
        leaderController.leaderboardDelegate = self;
        [self presentModalViewController: leaderController animated: YES];
     }

                                AND

вы также можете проверить яблочные документы для классов GKLeaderBoard и GKAchievementViewController ниже.

* 7* для GKLeaderBoard http://developer.apple.com/library/ios/#documentation/GameKit/Reference/GKLeaderboard_Ref/Reference/Reference.html

для GKAchievementViewController http://developer.apple.com/library/ios/#documentation/GameKit/Reference/GKAchievementViewController_Ref/Reference/Reference.html

...