如果我在这样的目标C两个变量,其中一个持有另外的名字作为一个字符串如何访问使用串保持其名称的属性/变量
NSInteger result = 4;
NSString * theName = @"result";
如何将我最好的访问第一个变量使用字符串而不是变量的引用?例如,如果我有很多变量,并会生成我需要的代码的名称,我需要一种方法来使用该字符串来获取变量。
如果我在这样的目标C两个变量,其中一个持有另外的名字作为一个字符串如何访问使用串保持其名称的属性/变量
NSInteger result = 4;
NSString * theName = @"result";
如何将我最好的访问第一个变量使用字符串而不是变量的引用?例如,如果我有很多变量,并会生成我需要的代码的名称,我需要一种方法来使用该字符串来获取变量。
虽然没有直接回答你的问题,有可能通过
[object setValue:@"value" forKey:theName]
同样访问对象的属性(或实例变量),吸气剂是[object valueForKey:theName]
(感谢kevboh!)
类似的,getter是'[object valueForKey:theName]'。 – kevboh
问题是,他需要根据字符串获取对象本身:) – Asciiom
@JeroenMoons尽管如此,Objective-C代码通常是在类的上下文中编写的,而变量实际上是ivars或属性,在这种情况下,我的答案解决了这个问题。 – user1071136
那是不可能的Objective-C的。变量名称不能通过名称合成。当运行你的代码时,变量名本身并不意味着什么,编译器会将它转换成内存地址。这个名字只是让程序员更容易编写和阅读代码的一种方式。
取决于你的确切情况,但你可能应该使用NSArray或NSDictionary。
这是为什么downvoted? – Asciiom
不是我,但可能是因为你只是说这是不可能的,没有证实你的答案。 – user1071136
我现在给了一些更多的解释,但仍然奇怪:) – Asciiom
我们可以有更多的上下文吗?我猜想你不能把事情放到NSDictionary中?你是否需要这个属性或变量? – Thilo