2014-04-17 38 views
0

我的遊戲實現了列出本地玩家朋友的自定義用戶界面。遊戲中心排行榜分數請求的完成處理程序永遠不會爲沒有分數的玩家調用

我也有一個Game Center排行榜。

當我的遊戲列出的球員,這也嘗試從排行榜加載自己的分數,使用此代碼:

GKLeaderboard *request = [[GKLeaderboard alloc] initWithPlayerIDs:myFriends]; 
    request.timeScope = GKLeaderboardTimeScopeAllTime; 
    request.identifier = @"my_leaderboards"; 
    if (request != nil) { 
     [request loadScoresWithCompletionHandler: ^(NSArray *scores, NSError *error) { 
      if (error != nil) { 
       NSLog(@"Error: %@",error.localizedDescription); 
      } 
      if (scores != nil) { 
       NSLog(@"WORKED: %@",scores); 
      } 
     }]; 
    } 

,它工作得很好。

...除非其中一個朋友沒有得分(例如,他們從來沒有玩過遊戲)。當myFriends中的其中一名玩家在排行榜中沒有分數輸入時,完成處理程序永遠不會被稱爲。沒有錯誤,沒有得分報道,因爲它從來沒有開火。

我在測試一個擁有兩個朋友的帳戶時意識到了這一點。一個朋友玩過這個遊戲(所以他們有分數),另一個沒有。完成處理程序從未被調用。然後,我不滿足沒有得分的那個人,而且完成處理程序工作正常,返回了有分數的朋友的分數。

我有點理解這種行爲 - 畢竟,我要求它給我一個不存在的分數。但有沒有解決方法?如在,如果沒有得分,告訴它返回0?

的iOS 7

回答

0

它不能得到幫助,完成處理器的確將不會被調用,因爲在排行榜沒有得分項。儘管我仍然不明白爲什麼它不會返回一個這樣的錯誤。

由於自定義好友列表只顯示統計信息,因此我只爲每個統計信息放置一個加載圖標。如果處理程序未被調用超過10秒鐘,我認爲沒有分數輸入並且只顯示0.

相關問題