我有一个NSMutableDictionary
其中每个元素是另一个字典。我可以将其内容复制到另一个NSMutableDictionary
的最佳方式是什么?我试过使用:将NSMutableDictionary的内容复制到另一个NSMutableDictionary中?
firstDictionary = [NSMutableDictionary dictionaryWithDictionary:secondDictionary];
但不知道这是否是最好的方式来做到这一点。
我有一个NSMutableDictionary
其中每个元素是另一个字典。我可以将其内容复制到另一个NSMutableDictionary
的最佳方式是什么?我试过使用:将NSMutableDictionary的内容复制到另一个NSMutableDictionary中?
firstDictionary = [NSMutableDictionary dictionaryWithDictionary:secondDictionary];
但不知道这是否是最好的方式来做到这一点。
检查的NSDictionary initWithDictionary:copyItems:方法后
它通过调用copyWithZone:item的类的方法可以深入复制元素。你将不得不照顾自己在该方法中复制字段。
你是什么意思的“最好”?
无论如何,我所列出的一些方面在这里:
您还可以使用copy和mutableCopy在可变和不可变字典之间跳转。
- (void) someFunc:(NSMutableDictionary *)myDict {
NSDictionary *anotherDict = [myDict copy];
NSMutableDictionary *yetAnotherDict = [anotherDict mutableCopy];
}
顺应NSCopying协议,做好每一对象copyWithZone。
如果NsMutableDictionary包含另一个字典,其中包含另一个字典,那么您需要在每个字典上对所有级别执行copyWithZone。
至少,它是最具描述性的。你为什么认为这不是最好的?你需要一个深浅的元素拷贝吗? – Schultz9999 2011-01-05 02:44:12
我需要元素的深层副本。 – NSExplorer 2011-01-05 02:46:52
深度复制意味着您必须复制每个元素的每个字段(这意味着字段的字段的深层副本等)。该功能不是由任何集合类提供的。你必须自己照顾自己。 – Schultz9999 2011-01-05 03:07:52