Inserte solo 10 elementos en una matriz

Tengo una estructura llamada Thing :

 struct Thing { var name: String var description: String } 

y una matriz things = [Thing]() que contiene 100 elementos.

Ahora quiero algo como elements.addObjectsFromArray(things.subarrayWithRange(NSMakeRange(0, 10))) para completar mi tableView , pero

[Cosa] no tiene ningún miembro addObjectsFromArray.

elements.insertContentsOf(things, at: 0) , pero inserta todos los elementos de las things .

¿Cómo puedo insert solo 10 elementos en el range necesario?

Puede usar el subíndice de range para get una porción de una matriz y luego agregar:

 // create the mutable array var elements = [0] // create the big array let bigArray = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10] // take a slice of bigArray from index 5 up to but // not including index 10 and append it to the mutable array elements += bigArray[5..<10] // elements is [0, 5, 6, 7, 8, 9] 

¡Utiliza un bucle for !

¡No me malinterpreten! Me refiero a un estilo C para bucle, no a bucle for-in . Lo primero es útil cuando quieres repetir algo varias veces.

¡Primero veremos las things , pero solo para los primeros 10 artículos! Luego nos detendremos.

 for var i = 0 ; i < 10 ; i++ { elements.append(things[i]) } 

¿Ver? Eso es muy sencillo, ¿no?

Sé que Jack Lawrence ya publicó otra respuesta, pero este es un enfoque alternativo. ¡Mira si te gusta o no!

puedes usar la function CollectionType

 struct Thing { var name: String var description: String } let things:[Thing] = Array(count: 20, repeatedValue: Thing(name: "TestName", description: "TestDescription")) var elements:[Thing] = [] //subArray from 0 to 9 let subThings = things.prefix(10) elements.appendContentsOf(subThings)