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