转换可选(设置([“6”,“14”]))到[String]

时间:2018-05-02 15:27:03

标签: swift eureka-forms

我在尝试将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]
}

2 个答案:

答案 0 :(得分:2)

如果你确实有一个Set,正如输出Optional(Set(["6", "14"]))所暗示的那样,那么它就不是一个数组(这是[String])。因此,您的测试as? [String]注定要失败,因此您获得nil。你不能(使用as)一种类型的东西投射到不同的类型。

相反,您必须从Set to Array强制。这样做:

if let theSet = values["field_name"] as? Set<String> {
    incidents = Array(theSet)
}

答案 1 :(得分:1)

您可以使用Optional.map(_:)

{{1}}