使用字符串来引用变量

时间:2011-11-18 19:48:12

标签: objective-c

我有大约200个String值,每个字符串需要放入20个数组中的1个(有时多于1个)。数据都是静态的,我提前知道我想要将每个字符串放入哪个数组。

我想创建一个用来保持我的弦乐的plist。 plist中的每个条目都是一个键值字典。一个键值将是字符串本身。但我还想为每个字典添加一个数组,该数组将包含一个字符串应该放入的每个数组的名称列表。

所以我想知道,有没有办法从我的plist引用变量?我希望能够在plist中添加一个字符串,其值为我的数组变量的名称。在稍后我的代码中,我想从plist中检索该字符串并将其转换为对具有相同名称的变量的引用。任何想法如何做到这一点?

谢谢!

阳光

1 个答案:

答案 0 :(得分:1)

您需要一个将“数组名称”映射到数组对象的字典。例如:

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];
}