繁体   English   中英

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

[英]Copying the contents of an NSMutableDictionary into another NSMutableDictionary?

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

firstDictionary = [NSMutableDictionary dictionaryWithDictionary:secondDictionary];

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

您还可以使用copy和mutableCopy在可变字典和非可变字典之间跳转。

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

检查NSDictionary initWithDictionary:copyItems:方法。

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

符合NSCopying协议并对每个对象执行copyWithZone。

如果NsMutableDictionary包含另一个包含另一个字典的字典,那么你需要在所有级别的每个字典上执行copyWithZone。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM