我有这个回合制游戏,我的游戏中心正在工作,排行榜只工作点提交没有按照应有的方式进行。在我的游戏中,我有一个UILabel
来显示我的分数,每次你玩游戏时,它都会得到你以前的最高分,所以你可以让它更高,我使用以下代码:
if([GKLocalPlayer localPlayer].authenticated)
{
NSArray *arr = [[NSArray alloc] initWithObjects:[GKLocalPlayer localPlayer].playerID, nil];
GKLeaderboard *board = [[GKLeaderboard alloc] initWithPlayerIDs:arr];
if(board != nil)
{
board.timeScope = GKLeaderboardTimeScopeAllTime;
board.range = NSMakeRange(1, 1);
board.category = @"750";
[board loadScoresWithCompletionHandler: ^(NSArray *scores, NSError *error) {
if (error != nil)
{
// handle the error.
NSLog(@"Error retrieving score.", nil);
}
if (scores != nil)
{
NSString *scrVal = [NSString stringWithFormat: @"%i", ((GKScore*)[scores objectAtIndex:0]).value + 1];
//score += 2500;
//NSString *scrVal = [NSString stringWithFormat:@"%d",score];
lblScore.text = scrVal;
GKScore *myScoreValue = [[[GKScore alloc] initWithCategory:@"750"] autorelease];
myScoreValue.value = scrVal;
[myScoreValue reportScoreWithCompletionHandler:^(NSError *error) {
if(error != nil)
{
NSLog(@"Score Submission Failed");
}
else {
NSLog(@"Score Submitted");
}
}];
}
}];
}
[board release];
[arr release];
}
我刚刚尝试过,它确实提交了分数,但不是正确的分数,正如您在我的代码中看到的那样,我希望它能高出 1 分。 之前的分数是 2120,它显示了这一点,但是当我输入正确的单词并且这段代码正在运行时,它使我的新排行榜得分为 287,343,904,所以这就像另一个 2.8 亿字之后,但我只做了一个。
希望有人能解释我做错了什么?
来自 GKScore 类参考:
value
The score earned by the player.
@property(nonatomic, assign) int64_t value
value 是一个整数,但您正在设置指向它的字符串指针。