2

このようにObjective Cに2つの変数があり、一方が他方の名前を文字列として保持している場合

NSInteger result = 4;
NSString * theName = @"result";

変数への参照ではなく、文字列を使用して最初の変数にアクセスするにはどうすればよいでしょうか? たとえば、多くの変数があり、必要な変数の名前をコードで生成する場合、その文字列を使用して変数にアクセスする方法が必要になります。

4

2 に答える 2

6

あなたの質問に直接答えることはできませんが、オブジェクトのプロパティ (または ivar) にアクセスすることは可能です。

[object setValue:@"value" forKey:theName]

同様に、ゲッターは[object valueForKey:theName](thanks kevboh!)

于 2012-08-24T12:57:04.353 に答える
1

それはobjective-cでは不可能です。変数名を名前で合成することはできません。コードを実行するとき、変数名自体は何の意味もありません。コンパイラはそれをメモリ アドレスに変換します。この名前は、プログラマーがコードの記述と読み取りを容易にするための単なる手段です。

正確な状況によって異なりますが、おそらく NSArray または NSDictionary を使用する必要があります。

于 2012-08-24T13:02:38.253 に答える