ios - unwrap - ¿Cómo puedo convertir una matriz Int en una cadena? matriz en Swift
unwrap optional swift 4 (2)
Airspeed Velocity te dio la respuesta:
var arr: [Int] = [1,2,3,4,5]
var stringArray = arr.map { String($0) }
O si desea que su stringArray sea de tipo [String?]
var stringArray = arr.map { Optional(String($0)) }
Esta forma de la declaración de mapa es un método en el tipo Array. Realiza el cierre que proporciona en cada elemento de la matriz y reúne los resultados de todas esas llamadas en una nueva matriz. Asigna una matriz a una matriz de resultados. El cierre que pase debe devolver un objeto del tipo de los objetos en su matriz de salida.
Podríamos escribirlo en forma más larga:
var stringArray = arr.map {
(number: Int) -> String in
return String(number)
}
EDITAR:
Si solo necesita instalar sus valores int en las celdas de vista de tabla personalizadas, probablemente debería dejar la matriz como entradas y simplemente instalar los valores en sus celdas en su método cellForRowAtIndexPath.
func tableView(tableView: UITableView,
cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("cell",
forIndexPath: indexPath) as! MyCustomCellType
cell.textLabel?.text = "/(arr[indexPath.row])"
return cell
}
Edición # 2:
Si todo lo que desea es imprimir la matriz, sería mejor dejarla como una matriz de objetos Int, y simplemente imprimirlos:
arr.forEach { print($0) }
Tengo una matriz que se parece a esto:
var arr: [Int] = [1,2,3,4,5]
Para imprimir esto, me gustaría convertirlo en:
var newArr: [String?] = ["1","2","3","4","5"]
¡Por favor, ayúdame! Gracias por adelantado.
Deberías usar
cell.textLabel?.text = "/(arr[indexPath.row])"
con el fin de presentar el valor en la etiqueta como una cadena.