我认为这样做的方法是创建主字典(称为mainDictionary),然后有另一个字典(称为tempDictionary),并在我得到它们时用值填充tempDictionary。然后,将tempDictionary作为一个值添加到主字典中。这是可行的,但随后我需要清除tempDictionary,以便再次填充它,然后将其作为另一个值添加到主字典中。问题是,当我清除tempDictionary时,它也会从主字典中删除那些值。下面是我的代码:
NSMutableDictionary *tempDictionary = [[NSMutableDictionary alloc]init];
[tempDictionary setObject:@"apple" forKey:@"myFruit"];
[mainDictionary setObject:tempDictionary forKey:@"sample4"];
[tempDictionary removeAllObjects];
所以显然我需要使用不同的方法,或者在清除tempDictionary之前以某种方式"保存"mainDictionary。tempDictionary需要动态更新,然后填充mainDictionary..有办法做到这一点吗?将有数百个"样本"需要添加,所以我不能只在运行时创建一堆tempDictionarys。
如果您希望临时字典的内容(添加到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];