我有一個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