Ich versuche, mich mit dem Initialisieren leerer Arrays in Swift zu beschäftigen.
Für eine Reihe von Zeichenfolgen ist es ziemlich einfach:
var myStringArray: String[] = []
myStringArray += "a"
myStringArray += "b"
-> ["a", "b"]
und für ganze Zahlen
var myIntArray: Int[] = []
myIntArray += 1
myIntArray += 2
-> [1, 2]
Es funktioniert auch für andere Objekttypen wie NSImage-Objekte:
let path = "/Library/Application Support/Apple/iChat Icons/Flags/"
let image1 = NSImage(byReferencingFile: path + "Brazil.png")
let image2 = NSImage(byReferencingFile: path + "Chile.png")
var myImageArray: NSImage[] = []
myImageArray += image1
myImageArray += image2
-> [<NSImage 0x7fe371c199f0 ...>, <NSImage 0x7fe371f39ea0 ...>]
Ich kann jedoch die Syntax zum Initialisieren eines leeren Arrays von Wörterbüchern nicht ausarbeiten.
Ich weiß, dass Sie eine Reihe von Wörterbüchern haben können, da das Initialisieren mit einem Anfangswert funktioniert:
let myDict1 = ["someKey":"someValue"]
let myDict2 = ["anotherKey":"anotherValue"]
var myDictArray = [myDict1]
myDictArray += myDict2
-> [["someKey": "someValue"], ["anotherKey": "anotherValue"]]
Dies schlägt jedoch fehl (was Sie von der Syntax erwarten würden):
var myNewDictArray: Dictionary[] = []
mit dem Fehler Cannot convert the expression's type 'Dictionary[]' to type 'Hashable'
Die Frage ist also, wie man ein leeres Array von Wörterbuchelementen richtig initialisiert und warum diese Syntax nicht var myNewDictArray: Dictionary[] = []
funktioniert.