如何使用保存其名称的String访问属性/变量

时间:2012-08-24 12:52:10

标签: objective-c macos cocoa

如果我在Objective C中有两个变量,其中一个变量将另一个变量保存为字符串

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

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

2 个答案:

答案 0 :(得分:6)

虽然没有直接回答您的问题,但可以通过

访问对象的属性(或ivars)
[object setValue:@"value" forKey:theName]

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

答案 1 :(得分:1)

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

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