NSDictionary从键入循环中分配变量

时间:2014-03-01 14:00:08

标签: objective-c arrays loops nsdictionary nsdata

我有一个像这样的NSDictionary循环:

NSMutableDictionary *readDict = [[NSMutableDictionary alloc] initWithContentsOfFile:plist];
NSDictionary *keys = [readDict objectForKey:data]; //Dictionary
for(NSString *object in keys) {
      NSData *(current object name) = [keys objectForKey:object]; //Dictionary
}

// Can I assign ^ the object name to a new NSData var as it loops?

是否可以在循环时从对象名称中指定变量名称?

1 个答案:

答案 0 :(得分:0)

Objective-C基本上是C,只有一些扩展。在您对C语言的丰富知识中,您是否见过在运行时创建变量的方法?我没有。所以如果我弄清楚你想做什么,你就做不到。

什么是“数据”?它是一个包含字符串的变量吗?这条线

NSDictionary *keys = [readDict objectForKey:data]; //Dictionary

假设字典readDict有一个键值对,其中键等于变量数据中包含的字符串,值为NSDictionary。那是你想要的吗?

接下来,在字典上运行的for循环将在该字典中的 keys 上运行。所以在

for(NSString *object in keys)

名称“对象”被严重选择,因为它实际上是一个关键。

通常NSDictionary将包含具有已知值的键,并且您永远不会想到使用for循环来访问它们。或者你有一个字典,可以包含任意数量的未知密钥,你想要一个接一个地处理它们。你不会有不同的变量。