Идентификатор Objective-C из NSString - PullRequest
1 голос
/ 02 сентября 2011

Я хочу передать NSString методу и присвоить этому конкретному имени NSString новый NSSMutableArray.Смешение?Программно выглядит так:

+ (void)newMutableArrayWithName:(NSString*)theArrayName
{
     NSLog(@"Creating an array that is named: %@",theArrayName);
     NSMutableArray* theArrayName = [[NSMutableArray alloc] init];
}

К сожалению, «theArrayName» не связано с аргументом, переданным методу.Есть ли способ, которым это достижимо?

Ответы [ 2 ]

7 голосов
/ 02 сентября 2011

Имя переменной используется компилятором и устанавливается во время компиляции, а не во время выполнения.

Если вам необходимо связать метку с массивом, я предлагаювы используете NSDictionary, чтобы сделать что-то подобное

NSString *theArrayName = @"My Cool Array";
NSMutableArray *theArray = [NSMutableArray array];
NSDictionary *theDictionary = [NSDictionary dictionaryWithObjectsAndKeys: 
                                      theArray, theArrayName, nil];

Вы можете иметь несколько «именованных» массивов в словаре, если хотите, и можете обращаться к ним по именам, которые вы им дали

[theDictionary objectForKey:@"My Cool Array"];
2 голосов
/ 02 сентября 2011

Просмотрите кодировку значения ключа для установки значений существующих свойств по имени свойства, но, похоже, оно не может создать новое свойство. Для этого вам просто нужно использовать словарь.

...