5

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

4

1 回答 1

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];
    }
}];

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

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

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

于 2011-08-04T23:35:29.667 回答