Ich habe eine Reihe von Wörterbüchern in einem Wörterbuch. Ich initialisieren es wie folgt aus:iOS Swift Updating Wörterbuch in einem Array
var fillups:[NSMutableDictionary] = []
Dann habe ich es wie folgt laden:
fillups = userDefaults.object(forKey: car) as! NSArray as! [NSMutableDictionary]
Dann, wenn ich versuche, ein Wörterbuch Element im Array zu aktualisieren ich die „mutiert Methode unveränderliches Objekt gesendet“ erhalten Error. Hier ist mein Code, um den Datensatz zu aktualisieren:
let dict=fillups[row]
dict.setValue(odometerField.text, forKey: "odometer")
dict.setValue(gallonsField.text, forKey: "gallons")
fillups[row]=dict
Der Fehler tritt in meiner ersten SetValue-Zeile.
'wie! NSArray als! [NSMutableDictionary] 'Es ist fast so, als wolltest du * das eines Tages abstürzen. ;) Bitte nicht auspacken und nicht gewaltsam werfen. Verwenden Sie eine optionale Bindung ('if let') oder andere sichere Auspacktechniken. – Moritz
Das war eigentlich die Syntax, die Xcode verlangte. Allerdings habe ich es auf dieses fillups = userDefaults.object (forKey: car) als geändert! [NSMutableDictionary] und Xcode gefiel das. Immer noch das gleiche Problem. –
Dann Xcode war schlecht benehmen. Manchmal macht es das ... Machtcasts sind schon etwas, das man so oft wie möglich verbieten sollte. Wenn man also einen * doppelten * Machtwurf sieht, weiß man *, dass etwas sehr falsch ist, und meistens muss man das Problem angehen dich selber. :) – Moritz