2

如果我在 Objective C 中有两个像这样的变量,其中一个将另一个的名称保存为字符串

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

我如何最好地使用字符串而不是对变量的引用来访问第一个变量?例如,如果我有很多变量并且会通过代码生成我需要的变量的名称,那么我需要一种使用该字符串获取变量的方法。

4

2 回答 2

6

虽然没有直接回答您的问题,但可以通过以下方式访问对象的属性(或 ivars)

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

同样,吸气剂是[object valueForKey:theName](感谢kevboh!)

于 2012-08-24T12:57:04.353 回答
1

这在objective-c中是不可能的。变量名不能按名称合成。运行代码时,变量名本身没有任何意义,编译器会将其转换为内存地址。该名称只是程序员使编写和阅读代码更容易的一种方式。

取决于您的具体情况,但您可能应该使用 NSArray 或 NSDictionary。

于 2012-08-24T13:02:38.253 回答