web-dev-qa-db-fra.com

Comment puis-je convertir un tableau Int en une chaîne? tableau dans Swift

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.

32
GJZ

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)
}

MODIFIER:

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
}

Édition n ° 2:

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) }
58
Duncan C

Tu devrais utiliser

 cell.textLabel?.text = "\(arr[indexPath.row])"

afin de présenter la valeur dans l'étiquette comme une chaîne.

2
K123