我认为这样做的方法是创建主字典(称为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。
答案 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];