используйте строку для ссылки на переменную - PullRequest
0 голосов
/ 18 ноября 2011

У меня есть около 200 строковых значений, и каждая строка должна быть размещена в 1 из 20 массивов (иногда более 1). Все данные статичны, и я заранее знаю, в какой массив я хочу поместить каждую строку.

Я хотел бы создать лист для моих строк. Каждая запись в листе является словарем значения ключа. Одно значение ключа будет самой строкой. Но я также хочу добавить массив в каждый словарь, и этот массив будет содержать список имен каждого массива, в который должна быть помещена строка.

Так что мне интересно, есть ли способ ссылки на переменную из моего списка? Я хотел бы иметь возможность просто добавить строку в plist со значением, которое является именем моей переменной массива. Чуть позже из моего кода я хочу извлечь эту строку из plist и преобразовать ее в ссылку на переменную с тем же именем. Есть идеи как это сделать?

Спасибо!

Sunny

1 Ответ

1 голос
/ 19 ноября 2011

Вам нужен словарь, который сопоставляет «имя массива» с объектом массива. Например:

NSMutableArray *redThings = [NSMutableArray array];
NSMutableArray *greenThings = [NSMutableArray array];
NSMutableArray *blueThings = [NSMutableArray array];

NSDictionary *arraysByName = [NSDictionary dictionaryWithObjectsAndKeys:
    redThings, @"redThings",
    greenThings, @"greenThings",
    blueThings, @"blueThings",
    nil];

NSArray *plist = loadThePropertyList();

for (NSDictionary *item in plist) {
    NSString *theStringItself = [item objectForKey:@"theStringItself"];
    NSArray *arrayNames = [item objectForKey:@"arrayNames"];
    for (NSString *arrayName in arrayNames)
        [[arraysByName objectForKey:arrayName] addObject:theStringItself];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...