Я программирую игру с 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+ различными типами объектов на уровне это было бы грубо, кажется, должен быть лучший способ. Я ненавижу жесткие кодовые значения и люблю упрощать свой код с помощью простых обновлений переменных, которые выполняются через общие классы и методы.