如果我在 Objective C 中有两个像这样的变量,其中一个将另一个的名称保存为字符串
NSInteger result = 4;
NSString * theName = @"result";
我如何最好地使用字符串而不是对变量的引用来访问第一个变量?例如,如果我有很多变量并且会通过代码生成我需要的变量的名称,那么我需要一种使用该字符串获取变量的方法。
如果我在 Objective C 中有两个像这样的变量,其中一个将另一个的名称保存为字符串
NSInteger result = 4;
NSString * theName = @"result";
我如何最好地使用字符串而不是对变量的引用来访问第一个变量?例如,如果我有很多变量并且会通过代码生成我需要的变量的名称,那么我需要一种使用该字符串获取变量的方法。
虽然没有直接回答您的问题,但可以通过以下方式访问对象的属性(或 ivars)
[object setValue:@"value" forKey:theName]
同样,吸气剂是[object valueForKey:theName]
(感谢kevboh!)
这在objective-c中是不可能的。变量名不能按名称合成。运行代码时,变量名本身没有任何意义,编译器会将其转换为内存地址。该名称只是程序员使编写和阅读代码更容易的一种方式。
取决于您的具体情况,但您可能应该使用 NSArray 或 NSDictionary。