我目前有一个循环,它遍历NSString对象的NSArray。我希望在循环的每次迭代中创建一个NSString变量,使用当前评估的NSString对象的字符串值(来自NSArray)作为变量的名称。这可能最好通过示例解释:
for (i = 0; i < [arrayOfStrings count]; i++) {
// NSString *<name of variable is [arrayOfStrings objectAtIndex:i]> = [[NSString alloc] init];
}
无论如何要完成这项任务吗?我正在使用iPhone SDK 3.1。感谢。
答案 0 :(得分:1)
不完全是你可以使用NSMutableDictionary在运行时添加键/值对,其中键是字符串数组中的名称。请参阅http://developer.apple.com/iphone/library/documentation/Cocoa/Reference/Foundation/Classes/NSMutableDictionary_Class/Reference/Reference.html。
答案 1 :(得分:1)
您可能需要查看Objective-C运行时库支持。有许多函数可以让您在运行时添加变量,方法或更改方法实现。例如,在您的情况下, class_addIvar 函数可能适合您:
将新的实例变量添加到类中。
BOOL class_addIvar(Class cls, const char *name, size_t size, uint8_t alignment, const char *types)
答案 2 :(得分:1)
你所要求的是没有意义的。变量名在运行时不存在。它们被编译为偏移量,并且变量的名称将丢失(如果我们讨论的是方法局部变量。运行时保留实例变量的名称。)
我认为真正的问题是“为什么你需要这样做?你想要完成什么?”
答案 3 :(得分:0)
如果变量在运行时才存在,那么可以使用它们吗?