¿Cómo puedo agregar un nuevo elemento a mi matriz multi-tipo en Swift

Cuando uso una matriz de tipo único en swift, puedo agregar elementos a mi matriz con diferentes types de operaciones (añadir, + =, etc.), por ejemplo, este código funciona:

var arr = [1, 2, 3, 4, 5] arr[0...2] = [-1, -2, -3] arr += 6 arr.append(-3) arr += [8, -3, 1, 2] //arr is now [-1, -2, -3, 4, 5, 6, -3, 8, -3, 1, 2] 

pero cuando inicializo mi matriz con elementos de tipo múltiple, ninguno de ellos funciona:

 var arr = ["Hello", -3, 4.5, "Hi"] var arr2:AnyObject = ["hi", -3.4, 2] arr[0...2] = [-1, -6.7, "hello"] // Cannot assign to the result of this expression arr.append(1.2) // 'NSArray' does not have a member named 'append' arr += [1, "Error", -3.2] // Could not find an overload for '+=' that accepts the supplied arguments arr2.append("hello") // 'AnyObject' does not have a member named 'append' arr.arrayByAddingObject("This works!") arr2.arrayByAddingObject("This works too!") 

Me doy count de que cuando utilizo AnyObject, mi matriz se convierte en NSArray (en realidad NSMutableArray) ¿Cómo puedo hacer una matriz rápida normal con el tipo AnyObject para que pueda usar operaciones útiles como '+ =' o funciones como append. (Perdón por mi mal ingles)

Debe declarar la matriz como AnyObject[]

 var arr: AnyObject[] = ["Hello", -3, 4.5, "Hi"] var arr2: AnyObject[] = ["hi", -3.4, 2] arr[0...2] = [-1, -6.7, "hello"] arr += "hello" arr.append([1, "Error", -3.2]) arr2 += ["hi", "hiya"] arr2.append("hello") 

Parece que hay un error cuando intenta agregar una matriz con un valor de coma flotante negativa

 arr += [1, "No Error", 3, -3] arr += [-1, "No Error", 3, 3] arr += -3.2 // no error arr += [1, "Error", -3.2] 

Entonces, puede resolver sus primeros 4 errores declarando las matrices como:

 var arr:Array<Any> = ["Hello", -3, 4.5, "Hi"] var arr2:Array<Any> = ["hi", -3.4, 2] arr[0...2] = [-1, -6.7, "hello"] arr.append(1.2) arr += [1, "Error", -3.2] arr2.append("hello") 

Ahora que son Arrays Swift en lugar de NSArrays , no se puede llamar a arrayByAddingObject en ellas.

Parece que un reparto a NSArray funcionaría, pero eso hace que el comstackdor falle (en un patio de recreo).