Разработка под iOS: почему loadScoresWithCompletionHandler не возвращается?

Я играю с API Game Kit, и у меня есть очень простой блок кода, который никогда не возвращается, даже с ошибкой...

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
       {
        .
        .
        .

Так как ошибки нет, я не уверен, как решить эту проблему. У кого-нибудь есть идеи, что не так или как я могу продолжить расследование, что не так?

Большое спасибо за вашу мудрость!

ОБНОВЛЕНИЕ: я наконец смог вернуть этот блок кода, хотя я не до конца понимаю, почему. Чтобы вернуть его, я отправил счет в таблицу лидеров незадолго до попытки получить его. Странно то, что у меня там раньше была оценка, поэтому я не знаю, почему публикация результатов повлияла на эту проблему.

2 ответа

Решение

Проблема возникла при попытке загрузить результаты для новых игроков, у которых еще не было результатов в списке лидеров. Оказывается, эти операторы "если" попадали в цель, но блоков кода под ними не было, так как не было ошибок и не было баллов. Во всяком случае, это была глупая ошибка с моей стороны. Однако, спасибо DavidD за его вклад. Даже если его ответ не был связан с проблемой, я все же кое-что узнал.

На самом деле это может быть ошибка, которая только что была исправлена ​​в бета-версии iOS 4.3.

Из заметок разработчика (источник: gadgetsdna.com)

ИСПРАВЛЕНО: GameKit теперь сообщает об ошибке, когда достижение или оценка в таблице лидеров фактически не представлены.

Я не уверен на 100%, что это связано с вашей проблемой, но единственный способ выяснить это - либо зарегистрироваться в программе для разработчиков iOS и протестировать последнюю бета-версию, либо дождаться выхода окончательного iOS 4.3 SDK.

Другие вопросы по тегам