我正在编写一个有 40 个关卡的游戏,并且我将所有关卡数据存储在一个 .plist 中。这很好用,但是现在我正在尝试实现多个级别,我正在寻找一种方法来基于级别调用单例上的属性,而无需手动编写开关/案例之类的代码。我想做类似以下的事情:
这是我用来提取数据的代码,但如您所见,我已经硬编码了“dictionaryLevel1Data”属性。
int capacity = [[sharedDataManager.dictionaryLevel1Data objectForKey:@"typeWarrior"] intValue];
我想设置一个变量,并根据我知道这样行不通的方法调用单例的属性。注意我是如何替换“dictionaryLevel1Data”的
NSString level = @"1";
int capacity = [[sharedDataManager.[NSString stringWithFormat:@"dictionaryLevel%@Data", level] objectForKey:@"typeWarrior"] intValue];
任何关于我如何实现这一点的建议将不胜感激。我总是可以为每个级别手动设置一个开关/案例,但是每个级别有 40 个级别和 50 多种不同的对象类型,这会很粗糙,似乎必须有更好的方法。我讨厌硬编码值,喜欢通过对通过泛型类和方法运行的变量进行简单更新来简化我的代码。