3

私はGameKitAPIで遊んでいますが、エラーがあっても戻らない非常に単純なコードブロックがあります...

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

これは実際には、iOS4.3ベータ版で修正されたばかりのバグである可能性があります。

開発者向けメモから(出典:gadgetsdna.com

修正済み:アチーブメントまたはリーダーボードスコアが実際に送信されない場合、GameKitがエラーを報告するようになりました。

これがあなたの問題に関連していると100%確信しているわけではありませんが、それを見つける唯一の方法は、iOS開発者プログラムに登録して最新のベータ版をテストするか、最終的なiOS4.3SDKがリリースされるのを待つことです。

于 2011-01-24T21:38:23.830 に答える
0

この問題は、すでに投稿されているリーダーボードにスコアがない新しいプレーヤーのスコアを読み込もうとしたときに発生しました。これらの「if」ステートメントがヒットしていることがわかりましたが、エラーがなく、スコアもなかったため、その下のコードブロックはヒットしていませんでした。とにかく、それは私の側のばかげた間違いでした。しかし、DavidDの貢献に感謝します。彼の答えは問題とは無関係でしたが、私はまだ何かを学びました。

于 2011-01-25T20:36:56.430 に答える