Objective c 使用字符串引用变量

Objective c 使用字符串引用变量,objective-c,Objective C,我有大约200个字符串值,每个字符串需要放入20个数组中的1个(有时超过1个)。数据都是静态的,我提前知道希望将每个字符串放入哪个数组 我想创建一个plist来保存我的字符串。plist中的每个条目都是一个键值字典。一个键值将是字符串本身。但我还想向每个字典添加一个数组,该数组将包含字符串应该放入的每个数组的名称列表 所以我想知道,有没有办法从plist中引用一个变量?我希望能够在plist中添加一个字符串,其值是数组变量的名称。在稍后的代码中,我希望从plist中检索该字符串,并将其转换为对同

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

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

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

谢谢


Sunny

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

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