2011-08-04 60 views
5

我有一個與遊戲中心成就相關的問題。是否有可能通過其標識符檢索成就的名稱/描述?我試圖避免對每個標識符與其相應的名稱進行硬編碼,那麼是否有解決方案可以獲得該名稱? 謝謝, 薩米通過標識符檢索遊戲中心的成績

回答

10

當然,這正是爲什麼你有本地化支持iTunes Connect內的成就(以及排行榜)。

但是,沒有辦法向Game Center詢​​問關於基於ID的一項成就的本地化信息。相反,您要求提供有關所有成就的信息,這些成就可以爲您提供一組GKAchievementDescription對象,最好將其放入字典中,其中鍵是成就ID,然後從該字典中選擇適當的GKAchievementDescription對象。

NSMutableDictionary *achievementDescriptions = [[NSMutableDictionary alloc] init]; 
[GKAchievementDescription loadAchievementDescriptionsWithCompletionHandler:^(NSArray *descriptions, NSError *error) { 
    if (error != nil) { 
     NSLog(@"Error getting achievement descriptions: %@", error); 
    } 
    for (GKAchievementDescription *achievementDescription in descriptions) { 
     [achievementDescriptions setObject:achievementDescription forKey:achievementDescription.identifier]; 
    } 
}]; 

然後當你想爲一些成績顯示信息:

GKAchievementDescription *achievementDescription = [achievementDescriptions objectForKey:currentAchievement.identifier]; 

該對象爲您提供了一個本地化的標題,描述了當它實現和未實現的,以及點數它獎勵和您在iTunes Connect中指定的圖像。

+0

正是我需要的。非常感謝 – Sami

+0

令人難以置信的方便;謝謝!這基本上補充了我認爲是SDK中公然遺漏的內容...... – iisystems