将NSArray添加到NSDictionary导致问题
问题描述:
我正在为iOS 4在XCode 3.2.3中编写一个应用程序。在我的代码中,我创建了NSDictionaries的NSArray,每个NSDray包含两个键/值对,一个字符串和一个NSArray NSDictionaries(有点令人困惑,我知道)。只是给你视觉,这里的结构:将NSArray添加到NSDictionary导致问题
<NSArray>
<NSDictionary>
<NSString/>
<NSArray>
<NSDictionary/>
<NSDictionary/>
...
</NSArray>
</NSDictionary>
...
</NSArray>
有什么奇怪的是,当我添加一个新的NSDictionary到最里面的NSArray,似乎增加包含在的每个相同的字典到的NSArray外部NSDictionaries。下面是我如何将最里面的NSDictionary到最里面的NSArray:
[[outerDict objectForKey:@"innerArray"] addObject:innerDict];
所以,只是为了回顾一下,我想要的输出是这样的:
<outerArray>
<outerDict1>
<string>
<innerArray1>
<innerDict1>
<innerDict2>
</innerArray1>
</outerDict1>
<outerDict2>
<string>
<innerArray2>
<innerDict3>
<innerDict4>
</innerArray2>
</outerDict2>
<outerArray>
但我真的开始是这样的:
<outerArray>
<outerDict1>
<string>
<innerArray1>
<innerDict1>
<innerDict2>
<innerDict3>
<innerDict4>
</innerArray1>
</outerDict1>
<outerDict2>
<string>
<innerArray2>
<innerDict1>
<innerDict2>
<innerDict3>
<innerDict4>
</innerArray2>
</outerDict2>
<outerArray>
注意,内NSDictionaries被添加到每 innerArray。对于我的生活,我无法弄清楚为什么!
任何帮助将非常感激,谢谢!
-Matt
答
您需要发表更多代码。
[[outerDict objectForKey:@"innerArray"] addObject:innerDict];
增加innerDict
只innerArray
在outerDict
,没有别的。
也就是说,你可能已经把同样innerArray
两次到两个不同的outerDict
,像这样:
NSMutableArray* innerArray=[NSMutableArray array];
[outerDict1 setObject:innerArray forKey:@"innerArray"];
[outerDict2 setObject:innerArray forKey:@"innerArray"];
这增加了相同innerArray
两次,而不是两个独立的阵列。然后,如果您修改innerArray
的outerDict1
,那也会修改innerArray
的outerDict2
,因为这两个是相同的数组。
你可以发布创建这整个outerArray的代码? '[[outerDict objectForKey:@“innerArray”] addObject:innerDict];'看起来正确。 – 2010-07-09 16:01:30