3

我有一个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 不喜欢这些想法的外观。

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

4

2 回答 2

8

将可选数组转换为非可选数组的经典方法是flatMap { $0 }

let years = ...map { word in Int(word) }.flatMap { $0 }

于 2015-12-30T09:15:40.297 回答
6

纯 Swift 解决方案,无需 Foundation 的帮助

let arr = "7,8,9,10".characters.split(",").flatMap{ Int(String($0)) }
print(arr) // [7, 8, 9, 10]
于 2015-12-30T09:57:26.673 回答