Frage Kopieren des Inhalts eines NSMutableDictionary in ein anderes NSMutableDictionary?


ich habe ein NSMutableDictionary Jedes Element ist ein anderes Wörterbuch. Was ist der beste Weg, den Inhalt in einen anderen zu kopieren? NSMutableDictionary? Ich habe versucht mit:

firstDictionary = [NSMutableDictionary dictionaryWithDictionary:secondDictionary];

Allerdings nicht sicher, ob dies der beste Weg ist, es zu tun.


6
2018-01-05 02:41


Ursprung


Antworten:


Überprüfen Sie das NSDictionary initWithDictionary: copyItems: Methode.

Es ermöglicht das tiefe Kopieren von Elementen durch den Aufruf von copyWithZone: Methode der Klasse des Elements. Sie müssen sich darum kümmern, die Felder selbst innerhalb der Methode zu kopieren.


5
2018-01-05 03:15



Sie können auch zwischen kopierbaren und nicht änderbaren Wörterbüchern mit copy und mutableCopy springen.

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

11
2018-04-26 02:43



Was meinst du mit "am besten"?
Wie auch immer, ich habe hier einige Wege aufgelistet:

  1. firstDictionary = [NSMutableDictionary wörterbuchWithDictionary: secondDictionary];
  2. [[NSDictionary alloc] initWithDictionary: secondDictionary]; // Vergiss nicht, später zu veröffentlichen
  3. tiefe Kopie verwenden
  4. flache Kopie verwenden

0
2018-01-05 02:53



Entsprechen Sie dem NSCopying-Protokoll, und kopieren Sie für jedes Objekt copyWithZone.

Wenn NsMutableDictionary ein anderes Wörterbuch enthält, das ein anderes Wörterbuch enthält, müssen Sie copyWithZone für jedes Wörterbuch auf allen Ebenen ausführen.


0
2017-09-05 13:22