通过标识符检索游戏中心成就

Sam*_*ami 5 iphone achievements ios game-center

我有一个与游戏中心成就有关的问题.是否可以通过其标识符检索成就的名称/描述?我试图避免使用相应的名称对每个标识符进行硬编码,那么是否有可以获得名称的解决方案?谢谢,萨米

Fil*_*lic 10

当然,这正是iTunes Connect中对成就(以及排行榜)的本地化支持的原因.

但是,根据它的ID,没有办法向Game Center询​​问有关一项成就的本地化信息.相反,您要求提供有关所有成就的信息,这些成就为您提供了一系列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];
    }
}];
Run Code Online (Sandbox Code Playgroud)

然后,当您想显示某些成就的信息时:

GKAchievementDescription *achievementDescription = [achievementDescriptions objectForKey:currentAchievement.identifier];
Run Code Online (Sandbox Code Playgroud)

此对象为您提供本地化标题,描述实现和未实现的时间,以及它奖励的点数和您在iTunes Connect中指定的图像.