私は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以上の異なるオブジェクトタイプがあると、大雑把になります。もっと良い方法があるはずです。私は値をハードコーディングするのが嫌いで、ジェネリッククラスとメソッドを介して実行される変数を簡単に更新してコードを単純化するのが好きです。