[Xcode 7.1, iOS 9.1]
J'ai un tableau: var array: [String] = ["11", "43", "26", "11", "45", "40"]
Je veux convertir cela (chaque index) en un Int afin de pouvoir l'utiliser pour décompter à partir d'un minuteur, respectif de l'index.
Comment convertir un tableau String
en un tableau Int
dans Swift 2?
J'ai essayé plusieurs liens, aucun n'a fonctionné et ils m'ont tous donné une erreur. La plupart du code des liens est amorti ou n'a pas été mis à jour vers Swift 2, tel que la méthode toInt()
.
Utilisez la fonction map
let array = ["11", "43", "26", "11", "45", "40"]
let intArray = array.map { Int($0)!} // [11, 43, 26, 11, 45, 40]
Dans une classe comme UIViewController
use
let array = ["11", "43", "26", "11", "45", "40"]
var intArray = Array<Int>!
override func viewDidLoad() {
super.viewDidLoad()
intArray = array.map { Int($0)!} // [11, 43, 26, 11, 45, 40]
}
Si le tableau contient différents types, vous pouvez utiliser flatMap
pour ne considérer que les éléments pouvant être convertis en Int
.
let array = ["11", "43", "26", "Foo", "11", "45", "40"]
let intArray = array.flatMap { Int($0) } // [11, 43, 26, 11, 45, 40]
je suggère une approche un peu différente
let stringarr = ["1","foo","0","bar","100"]
let res = stringarr.map{ Int($0) }.enumerate().flatMap { (i,j) -> (Int,String,Int)? in
guard let value = j else {
return nil
}
return (i, stringarr[i],value)
}
// now i have an access to (index in orig [String], String, Int) without any optionals and / or default values
print(res)
// [(0, "1", 1), (2, "0", 0), (4, "100", 100)]