GameCenter - 向游戏中心提交分数的代码不起作用 - Xcode - iOS

时间:2012-04-23 00:16:08

标签: iphone ios xcode game-center

我有这个代码用于将我的分数提交给游戏中心但是每当我在游戏中心内提交分数时它表示我的分数是0.我不确定这是怎么回事?我也导入了GameKit框架。我已经看了几个教程,所有教程都来自之前版本的Xcode,但我不确定这是否有所作为。

-(IBAction)submitScore{
if (highscore>0) {

GKScore *scoreReporter = [[[GKScore alloc] initWithCategory:@"MyLeaderBoardID"] autorelease];

scoreReporter.value = [[NSNumber numberWithInt:highscore] longLongValue];
NSLog(@"posted");
NSLog(@"%i",highscore);

[scoreReporter reportScoreWithCompletionHandler:^(NSError *error) {
    if (error != nil)
    {
        NSLog(@"failed!!!");
        NSLog(@"%i",highscore);
    }
    else{
        NSLog(@"Succeded");

    }
}];}

我还有用于登录的代码:

[[GKLocalPlayer localPlayer] authenticateWithCompletionHandler:^(NSError *error){
if (error == nil) {
    NSLog(@"authintication success");
}
else{
NSLog(@"authintication failed");
    UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"Game Center Disabled"message:@"For Game Center make sure you have an account and you have a proper device connection."delegate:self cancelButtonTitle:@"Ok"otherButtonTitles:nil];
    [alert show];
}

}];

self.currentLeaderBoard = @"MyLeaderBoardID";

4 个答案:

答案 0 :(得分:0)

您确定在iTunes Connect上设置的排行榜是否具有“MyLeaderBoardID”作为其排行榜ID ?我没有看到代码有什么问题

答案 1 :(得分:0)

我会尝试创建一个int64_t并将其设置为scorevalue ...

答案 2 :(得分:0)

嗯,我在iOS编程方面相当新,并试图向游戏中心学习得分报告。但是当我检查你的代码时,我猜两种可能性:

1)“scoreReporter.value = [[NSNumber numberWithInt:highscore] longLongValue];”可能需要字符串值而不是数字值

2)排行榜的ID可能不是“MyLeaderBoardID”

在我看来,其他部分似乎还不错。

答案 3 :(得分:0)

也许这样......

GKScore *scoreReporter = [[GKScore alloc] initWithCategory:@"ID"];