マルチユーザーアプリケーションと、各ユーザーの情報を保持するための辞書の配列があります。各辞書には、1人のユーザーの情報が含まれています。たとえば、ユーザーごとの辞書に次のキーがあります。
userId
settings
musicVolume
設定内に、キーとキーを備えた別の辞書がありますlanguage
私はこれらのキーを次のコードで使用します
[settingsInfo setValue:[NSNumber numberWithInt:0] forKey:@"musicVolume"];
今、これらのkeysName文字列@"musicVolume"
は私のコード全体に広がっていました。そこで、文字列をフェッチするために使用できるシングルトンUtilityClassを作成することにしました。今のコードは次のようになります
UtilityClass* shared = [UtilityClass sharedInstance]
[settingsInfo setValue:[NSNumber numberWithInt:0] forKey:shared.musicVolume];
しかし、私がやりたいのは、つまり、異なるkeyPathを使用した音楽のボリュームです。
[settingsInfo setValue:[NSNumber numberWithInt:0] forKey:shared.settings.musicVolume];
私がそれを行うことができる1つの方法は、設定用の構造体またはクラスを作成し、それを維持musicVolume
することです。しかし、クラスやストリクトを作成せずにそれを行う方法があるかどうか疑問に思いました。独自のkeyPathを使用して変数を直接作成します。