Iphone 是否将NSMutableDictionary的内容复制到另一个NSMutableDictionary?
我有一个Iphone 是否将NSMutableDictionary的内容复制到另一个NSMutableDictionary?,iphone,objective-c,nsmutabledictionary,Iphone,Objective C,Nsmutabledictionary,我有一个NSMutableDictionary其中的每个元素都是另一个字典。将其内容复制到另一个NSMutableDictionary中的最佳方法是什么?我试过使用: firstDictionary = [NSMutableDictionary dictionaryWithDictionary:secondDictionary]; 但是,我不确定这是否是最好的方法。你说的“最好”是什么意思? 无论如何,我在这里列出了一些方法: 第一本字典= [NSMutableDictionary 字典与字典
NSMutableDictionary
其中的每个元素都是另一个字典。将其内容复制到另一个NSMutableDictionary
中的最佳方法是什么?我试过使用:
firstDictionary = [NSMutableDictionary dictionaryWithDictionary:secondDictionary];
但是,我不确定这是否是最好的方法。你说的“最好”是什么意思?无论如何,我在这里列出了一些方法:
它通过调用项目类的copyWithZone:方法来实现元素的深度复制。您必须自己在方法中复制字段。您还可以使用copy和mutableCopy在可变和不可变字典之间切换
- (void) someFunc:(NSMutableDictionary *)myDict {
NSDictionary *anotherDict = [myDict copy];
NSMutableDictionary *yetAnotherDict = [anotherDict mutableCopy];
}
遵守NSCopying协议,并在每个对象上执行copyWithZone
如果NsMutableDictionary包含另一个字典,其中包含另一个字典,则您需要在所有级别的每个字典上执行copyWithZone操作。至少,它是最具描述性的。你为什么认为这不是最好的?您需要元素的深度副本还是浅层副本?我需要元素的深度副本。深度副本意味着您必须复制每个元素的每个字段(这反过来意味着字段字段的深度副本等等)。任何集合类都不提供该功能。你必须自己处理。已经发布[点击这里][1]?希望你能帮助。。。[1]: