我需要在创建时使用其他NSMutableDictionarys动态填充NSMutableDictionary

时间:2014-08-20 01:43:24

标签: ios nsmutabledictionary

我认为这样做的方法是创建主字典(称为mainDictionary),然后使用另一个字典(称为tempDictionary)并使用我得到的值填充tempDictionary。然后,将tempDictionary作为值添加到主字典中。这有效,但后来我需要清除tempDictionary,以便我可以再次重新填充它,然后将其添加为主字典中的另一个值。问题是,当我清除tempDictionary时,它也会从主词典中删除这些值。这是我的代码:

 NSMutableDictionary *tempDictionary = [[NSMutableDictionary alloc]init];
 [tempDictionary setObject:@"apple" forKey:@"myFruit"];

 [mainDictionary setObject:tempDictionary forKey:@"sample4"];
 [tempDictionary removeAllObjects];

所以显然我需要使用不同的方法,或者某种方式" save"清除tempDictionary之前的mainDictionary。 tempDictionary需要动态更新,然后填充mainDictionary ..有没有办法做到这一点?将有数百个"样本"需要添加,所以我不能在运行时创建一堆tempDictionarys。

1 个答案:

答案 0 :(得分:0)

如果您希望从临时字典中删除所有对象时临时字典内容(添加到main)保持不变,则应在将其添加到主字典之前将其复制。

NSMutableDictionary *tempDictionary = [[NSMutableDictionary alloc] init];
[tempDictionary setObject:@"apple" forKey:@"myFruit"];

[mainDictionary setObject:[tempDictionary copy] forKey:@"sample4"];
[tempDictionary removeAllObjects];

另一种方法是重复使用tempDictionary但要执行

tempDictionary = [NSMutableDictionary dictionary];

每次开始新集合时都要创建一个具有相同名称的新临时字典 - 这与

非常不同
[tempDictionary removeAllObjects];