3

我正在使用 Game Kit API,我有一个非常简单的代码块,它永远不会返回,即使出现错误也不会......

GKLeaderboard *pointsRequest = [[GKLeaderboard alloc] initWithPlayerIDs:[match playerIDs]];
if (pointsRequest != nil)
{
    //Set the points leaderboard category id
    [pointsRequest setCategory:kPOINTS_LEADERBOARD_ID];
    [pointsRequest loadScoresWithCompletionHandler: ^(NSArray *scores, NSError *error) 
    {
       if (error != nil)   //THIS LINE NEVER GETS HIT
       {
          NSLog(@"%@", [error localizedDescription]);           
       }

       if (scores != nil)  //NOR DOES THIS LINE
       {
        .
        .
        .

由于没有错误,我不确定如何解决这个问题。有谁知道出了什么问题或我如何进一步调查出了什么问题?

非常感谢你的智慧!

更新:我终于能够让这段代码返回,但我不完全明白为什么。为了让它返回,我在尝试检索它之前不久在排行榜上发布了一个分数。奇怪的是我之前在那里发布过分数,所以我不知道为什么发布分数对这个问题有任何影响。

4

2 回答 2

4

这实际上可能是刚刚在 iOS 4.3 测试版中得到纠正的错误。

来自开发者说明(来源:gadgetsdna.com

已修复:GameKit 现在在未实际提交成就或排行榜分数时报告错误。

我不是 100% 确定这与您的问题有关,但找出答案的唯一方法是注册 iOS 开发人员计划并测试最新的 beta 版,或者等待最终的 iOS 4.3 SDK 发布。

于 2011-01-24T21:38:23.830 回答
0

尝试为已发布的排行榜上没有任何分数的新玩家加载分数时出现此问题。事实证明,那些“if”语句被命中了,但它们下面的代码块没有被命中,因为没有错误,也没有分数。无论如何,这对我来说是一个愚蠢的错误。然而,感谢 DavidD 的贡献。即使他的回答与问题无关,我仍然学到了一些东西。

于 2011-01-25T20:36:56.430 回答