将NSMutableDictionary的内容复制到另一个NSMutableDictionary中?

时间:2011-01-05 02:41:15

标签: iphone objective-c nsmutabledictionary

我有一个NSMutableDictionary,每个元素都是另一个字典。我可以将其内容复制到另一个NSMutableDictionary的最佳方式是什么?我尝试过使用:

firstDictionary = [NSMutableDictionary dictionaryWithDictionary:secondDictionary];

但不确定这是否是最好的方法。

4 个答案:

答案 0 :(得分:13)

您还可以使用copy和mutableCopy在可变和不可变的词典之间跳转。

- (void) someFunc:(NSMutableDictionary *)myDict {
    NSDictionary *anotherDict = [myDict copy];
    NSMutableDictionary *yetAnotherDict = [anotherDict mutableCopy];
}

答案 1 :(得分:6)

检查NSDictionary initWithDictionary:copyItems:方法。

它可以通过调用copyWithZone:item类的方法来实现元素的深度复制。您必须自己在方法中自己复制字段。

答案 2 :(得分:0)

“最佳”是什么意思?
无论如何,我在这里列出了一些方法:

  1. firstDictionary = [的NSMutableDictionary dictionaryWithDictionary:secondDictionary];
  2. [[NSDictionary alloc] initWithDictionary:secondDictionary]; //不要忘记稍后发布
  3. 使用深层复制
  4. 使用浅拷贝

答案 3 :(得分:0)

遵守NSCopying协议并对每个对象执行copyWithZone。

如果NsMutableDictionary包含另一个包含另一个字典的字典,那么你需要在每个字典的各个级别都做copyWithZone。