Sie sollten nicht NSMutableArray
nicht mehr verwenden, jedoch Sie können nicht für Client
mit NSMutableArray
Entweder Pass von ref erreichen, wenn es struct ist
Bitte verwenden Sie wie unten
var myDict = [String : [Client]]()
Wenn Sie mit dem Schiedsrichter übergeben wollen, dann sollte Client
sein eine Klasse in Ihrer Implementierung nicht struct.
Wenn Sie mit struct
nur gehen wollen, dann müssen Sie manuell aktualisiert Klient `neu zuweisen zurück
bei Klasse (Better Option)
(myDict["key1"] as! [Client]).firstName = "Jon"
bei Struct Zum Wörterbuch
var clientObjArray = (myDict["key1"] as! [Client])
var clientObjArrayFirstObj = clientObjArray.first
clientObjArrayFirstObj?.name = "Jon"
clientObjArray.remove(at: 0)
clientObjArray.insert(clientObjArrayFirstObj!, at: 0)
myDict["key1"] = clientObjArray
Hinweis: Zum Beispiel habe ich hav e hinzugefügt erste und 0 Index statische
Hoffe, es
einen besonderen Grund Ihnen klar ist, warum Sie Foundation (NSStuff, wie NSMutableArray) in Swift 3 und nicht verwenden Swift Array, wie 'var myDict behalten wollen: [ String: [Kunde]] '? – Larme
@ricardo: Wenn alles, was Sie zu erreichen versuchen, ist durch Verweis übergeben und übergeben Sie nicht Wert mit NSMutableArray, dann konvertieren Client in Klasse und nicht Struct und Swift Array verwenden, die durch Verweis übergeben werden nicht übergeben von Wert –
@Ricardo : Array in swift ist als Struct implementiert. Wenn Sie also ein Array von Klassenobjekten erstellen, wird das Array als Wert übergeben übergeben, was bedeutet, dass alle Operationen auf dem Array wie Objekt entfernen/Objekt einfügen nicht zum übergebenen Array zurückreflektiert werden, sondern Klassenobjekte im Array als Referenz übergeben werden Die Eigenschaft eines Objekts in einem Array bleibt erhalten und wird auch in einem übergebenen Array-Objekt reflektiert. –