gpt4 book ai didi

objective-c - iPhone 开发 : Why does GKLeaderboard loadScoresWithCompletionHandler: return a null value

转载 作者:行者123 更新时间:2023-11-29 11:20:43 26 4
gpt4 key购买 nike

我现在正在使用 Game Center,但我遇到了 GC 问题。当我使用 initWithPlayerIDs: 时,调用 loadScoresWithCompletionHandler: 回调时我没有得到任何分数。

GKLeaderboard *leaderBoard = [[[GKLeaderboard alloc] initWithPlayerIDs:[NSArray arrayWithObject:gcPlayerID]] autorelease];
leaderBoard.timeScope = GKLeaderboardTimeScopeAllTime;
leaderBoard.category = @"SomeLeaderboard";

[leaderBoard loadScoresWithCompletionHandler: ^(NSArray *scores, NSError *error) {
if (error == nil)
{
// scores is null
// ...
}

但是当我在做的时候:

GKLeaderboard *leaderBoard = [[[GKLeaderboard alloc] init] autorelease];
leaderBoard.timeScope = GKLeaderboardTimeScopeAllTime;
leaderBoard.category = @"SomeLeaderboard";

[leaderBoard loadScoresWithCompletionHandler: ^(NSArray *scores, NSError *error) {
if (error == nil)
{
for (GKScore* score in scores)
if ([score.playerID isEqualToString:gcPlayerID])
{
// Got something here
return;
}
}

它正在工作。

我目前使用的是第二种方法,但是如果有很多分数,它会腾出时间来处理。

有没有人遇到同样的问题?

谢谢。

最佳答案

恐怕根据给定的信息,我无法回答为什么 initWithPlayerIDs: 不起作用。但是,我也许可以简化您在第二种方法中对本地玩家分数的过滤。 GKLeaderboard 有一个属性 localPlayerScore 只有在 loadScoresWithCompletionHandler: 完成后才有效。 localPlayerScore 然后给出本地播放器的 GKScore。您的第二种方法将如下所示:

[leaderBoard loadScoresWithCompletionHandler:^(NSArray *scores, NSError *error) {
if (error == nil)
{
GKScore* myScore = leaderboard.localPlayerScore;
}
}

希望对您有所帮助。

关于objective-c - iPhone 开发 : Why does GKLeaderboard loadScoresWithCompletionHandler: return a null value,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7332320/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com