我在尝试将 Set
转换为 [String]
时遇到问题。我正在使用 Eureka 表单并将我的值设置为:
let values = form.values()
这是一个[String:Any]
。
我的领域是:
values["field_name"]
如果我使用以下内容,我将得到 nil:
var incidents : [String]?
if let incidentRow = values["field_name"]! {
incidents = incidentRow as? [String]
}
最佳答案
如果你真的有一个 Set,正如输出 Optional(Set(["6", "14"]))
所建议的那样,那么它就不是一个数组(这就是 [String]
) 是。你的测试是?因此,[String]
注定要失败,因此您将得到 nil
。您不能将一种类型的事物转换(使用as
)它不是的另一种类型。
相反,您必须强制从 Set 到 Array。这样做:
if let theSet = values["field_name"] as? Set<String> {
incidents = Array(theSet)
}
关于swift - 将 Optional(Set( ["6", "14"])) 转换为 [String],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50138290/