Estoy tratando de entender la inicialización de matrices vacías en Swift.
Para una variedad de cadenas, es bastante sencillo:
var myStringArray: String[] = []
myStringArray += "a"
myStringArray += "b"
-> ["a", "b"]
y para enteros
var myIntArray: Int[] = []
myIntArray += 1
myIntArray += 2
-> [1, 2]
también funciona para otros tipos de objetos como los objetos NSImage:
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 ...>]
Sin embargo, no puedo resolver la sintaxis para inicializar una matriz vacía de diccionarios.
Sé que puede tener una variedad de diccionarios porque la inicialización con un valor inicial funciona:
let myDict1 = ["someKey":"someValue"]
let myDict2 = ["anotherKey":"anotherValue"]
var myDictArray = [myDict1]
myDictArray += myDict2
-> [["someKey": "someValue"], ["anotherKey": "anotherValue"]]
Sin embargo, esto (que esperaría que fuera la sintaxis) falla:
var myNewDictArray: Dictionary[] = []
con el error Cannot convert the expression's type 'Dictionary[]' to type 'Hashable'
Entonces, la pregunta es ¿cuál es la forma correcta de inicializar una matriz vacía de elementos de diccionario y por qué no funciona esta sintaxis var myNewDictArray: Dictionary[] = []
?