J'ai un tableau qui ressemble à ceci:
var arr: [Int] = [1,2,3,4,5]
Afin d'imprimer ceci, je voudrais le convertir en:
var newArr: [String?] = ["1","2","3","4","5"]
Sil te plait aide moi! Merci d'avance.
Airspeed Velocity vous a donné la réponse:
var arr: [Int] = [1,2,3,4,5]
var stringArray = arr.map { String($0) }
Ou si vous voulez que votre stringArray soit de type [String?]
var stringArray = arr.map { Optional(String($0)) }
Cette forme de l'instruction map est une méthode du type Array. Il effectue la fermeture que vous fournissez sur chaque élément du tableau et assemble les résultats de tous ces appels dans un nouveau tableau. Il mappe un tableau dans un tableau de résultats. La fermeture que vous passez doit renvoyer un objet du type des objets dans votre tableau de sortie.
Nous pourrions l'écrire sous une forme plus longue:
var stringArray = arr.map {
(number: Int) -> String in
return String(number)
}
Si vous avez juste besoin d'installer vos valeurs int dans des cellules de vue de table personnalisées, vous devez probablement laisser le tableau sous forme d'entiers et simplement installer les valeurs dans vos cellules dans votre méthode 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
}
Si tout ce que vous voulez c'est imprimer le tableau, vous feriez mieux de le laisser comme un tableau d'objets Int, et de simplement les imprimer:
arr.forEach { print($0) }
Tu devrais utiliser
cell.textLabel?.text = "\(arr[indexPath.row])"
afin de présenter la valeur dans l'étiquette comme une chaîne.