Ich habe zwei Wörterbücher. Beide werden in einem ViewController deklariert, beide basieren auf einer Modellstrukturklasse.Update-Wörterbuch mit zuvor gelöschten Elementen
// ItemDictionary
var ItemDictionary = ItemModel()
var JSONDictionary = ItemModel()
JSON Daten werden in die JSONDictionary zugeführt und dann werden diese Daten an ItemDictionary geleitet, die einen Tisch innerhalb ViewDidLoad einspeist.
self.ItemDictionary = self.JSONDictionary
Alles gut. Die Tabelle ist aus JSON-Daten gut gefüllt. Ich kann auch Elemente aus der Tabelle und dem ItemDictionary löschen. Wenn ich jedoch versuche, Elemente zurückzusetzen, indem ich auf das ursprüngliche Wörterbuch (JSONDictionary) verweise, ist das Element verschwunden.
Ich verstehe, dass dies erwartet wird. Wenn Dictionary1 = Dictionary2, wird ein neues Wörterbuch nicht tatsächlich erstellt. Nur eine zweite Adresse. Wenn Sie also Dictionary1 ändern, ändert sich auch Dictionary2.
Ein praktisches Beispiel könnte eine Preisspanne sein. Sie können den Bereich verkleinern und weniger Objekte auf dem Tisch anzeigen lassen. Sie können zuvor gelöschte Artikel jedoch nicht ersetzen, wenn Sie die Preisspanne erhöhen möchten. Ich möchte das JSON-Skript nicht jedes Mal erneut aufrufen, wenn ich den Bereich bearbeite. Beratung geschätzt.
Sie können Elemente zu einem Wörterbuch hinzufügen. Zeigen Sie bitte Ihren Code. –
Was ist der Typ, der von 'ItemModel()' zurückgegeben wird? Es klingt, als ob du ein 'NSMutableDictionary' statt eines Swift' Dictionary' verwendest. –