Game Center публикует фиктивные оценки - iPhone - PullRequest
2 голосов
/ 26 января 2011

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

-(IBAction)subScore
{
    {
        GKScore *scoreReporter = [[[GKScore alloc] initWithCategory:@"katplay"] autorelease];

        scoreReporter.value = gcPost;
        NSLog(@"posted");
        NSLog(gcPost);

        [scoreReporter reportScoreWithCompletionHandler:^(NSError *error) {
            if (error != nil)
            {
                NSLog(@"failed!!!");
                NSLog(gcPost);
            }
        }];
    }
}

Итак, я играю в игру, получаю свой счет и просматриваю консоль, где в журнале написано, что gcPost = 2500. Когда я просматриваю таблицу лидеров, мой счет составляет 100 929 392 балла. Я понятия не имею, откуда могло взяться это число.

Я просто что-то упустил?

Chris

Ответы [ 3 ]

2 голосов
/ 27 января 2011

Вы упоминаете, что gcPost является "int * gcPost". Конечно, это должно быть просто "int gcPost"? Вы хотите фактическое целое число, а не указатель.

2 голосов
/ 27 января 2011

Только что реализовал Game Center в моем приложении.Вам нужно конвертировать ваше целое число в int64_t.В терминах Objective-C, это LongLong.Вы можете изменить это:

scoreReporter.value = gcPost;

на это:

scoreReporter.value = [[NSNumber numberWithInt:gcPost] longLongValue];

Я настоятельно призываю вас прочитать Документацию Appleв игровом центре .Это быстро и легко читается.Вы также можете скопировать большую часть кода оттуда.

0 голосов
/ 26 января 2011

Какой тип gcPost? Свойство GKScore.value ожидает значение типа int64_t. Я думаю, что тип gcPost не подходит для этого. Попробуйте сделать явное преобразование из исходного типа в int64_t.

...