将 [Int?] 转换为 [Int]

Converting [Int?] to [Int]

我有一个 String,例如"7,8,9,10",我想将其转换为 Int 项的数组,即 [Int]

但是,我的代码目前给了我一个 [Int?](可选整数数组)。这是代码:

let years = (item["years"] as! String)
                  .componentsSeparatedByString(",")
                  .map { word in Int(word)  }

我尝试了一些方法,例如将 Int(word) 更改为 Int(word!),并将 ! 添加到 String) 的末尾,但 swift 没有不喜欢这些想法的外观。

我认为作为初学者我做错了什么很明显,但我不太确定是什么!任何帮助将不胜感激 - 谢谢!

将可选数组转换为非可选数组的经典方法是 flatMap { [=10=] }:

let years = ...map { word in Int(word) }.flatMap { [=11=] }

纯Swift解决方案,没有基金会的帮助

let arr = "7,8,9,10".characters.split(",").flatMap{ Int(String([=10=])) }
print(arr) // [7, 8, 9, 10]