我正在尝试将两位十进制长度的float提交给Game Center排行榜,但是允许提交的唯一格式是int64_t。我正在使用默认的Apple报告评分方法:

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

我正在尝试使用此方法将分数提供给报告分数方法:
- (IBAction)increaseScore {
    self.currentScore = self.currentScore + 1;
    currentScoreLabel.text = [NSString stringWithFormat: @"%lld", self.currentScore];
    NSLog(@"%lld", self.currentScore);
}

请帮助,我一直在疯狂搜索,无法找到答案。

最佳答案

您只能将64位整数作为分数提交到排行榜。从documentation:

在Game Center中,分数只是一个
您的报告的64位整数值
应用。您可以自由决定
分数意味着什么,以及您的
应用程序对其进行计算。当你
准备将排行榜添加到
您的应用程序,您配置
iTunes Connect上的排行榜告诉
游戏中心的分数应该是多少
格式化并显示给播放器。
此外,您提供本地化的字符串
这样就可以显示分数
正确地使用不同的语言。一种
配置的主要优势
iTunes Connect中的排行榜是
Game Center应用程序可以显示
您无需拥有游戏即可获得的分数
编写任何代码。

该文档页面应告诉您有关格式化乐谱的信息。听起来像是要显示类似浮动的乐谱,您必须修改iTunes Connect中的格式设置。

更新

尝试使用该方法来增加分数:

- (IBAction) increaseScore {
     self.currentScore = self.currentScore + 5;
     float score = (float)self.currentScore / 100.0f;
     currentScoreLabel.text = [NSString stringWithFormat: @"%f", score];
     NSLog(@"%lld", self.currentScore);
}

关于ios - iOS Game Center提交float而不是int64_t,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6632052/

10-13 03:52