我想将NSString传递给一个方法,并将该特定的NSString名称作为新的NSSMutableArray。混乱?以编程方式看起来像这样:
+ (void)newMutableArrayWithName:(NSString*)theArrayName
{
NSLog(@"Creating an array that is named: %@",theArrayName);
NSMutableArray* theArrayName = [[NSMutableArray alloc] init];
}
不幸的是,“theArrayName”与传递给该方法的参数无关。有什么方法可以实现吗?
答案 0 :(得分:7)
变量名称由编译器使用,并在编译时设置,而不是在运行时设置。
如果您需要能够将标签与数组相关联,我建议您使用NSDictionary来执行此类操作
NSString *theArrayName = @"My Cool Array";
NSMutableArray *theArray = [NSMutableArray array];
NSDictionary *theDictionary = [NSDictionary dictionaryWithObjectsAndKeys:
theArray, theArrayName, nil];
如果你愿意,你可以在字典中有多个“命名”数组,并且可以通过你给它们的名字访问它们
[theDictionary objectForKey:@"My Cool Array"];
答案 1 :(得分:2)
查看key-value coding按属性名称设置现有属性的值,但似乎无法创建新属性。为此,您应该使用字典。