iPhone-iOS开发:为什么loadScoresWithCompletionHan...

codeday· 2019-11-12
本文来自 codeday ,作者 codeday
我正在使用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
       {
        .
        .
        .

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

非常感谢您的智慧!

更新:我终于能够使这段代码返回,以至于我不完全理解为什么.为了让它返回,我在尝试检索分数之前不久将分数发布到了排行榜.奇怪的是,我之前曾在上面发布过分数,所以我不知道为什么发布分数对这个问题没有任何影响.

最佳答案
实际上,这可能是刚刚在iOS 4.3 Beta中得到纠正的错误.

来自开发人员的说明(来源:gadgetsdna.com)

FIXED: GameKit now reports an error when achievement or a leaderboard score is not actually submitted.

我不是100%肯定这与您的问题有关,但是找出答案的唯一方法是要么注册iOS开发人员程序并测试最新的Beta版,要么等待最终的iOS 4.3 SDK出炉.