我发现了几个与此相关的线程,但是在我的案例中没有一个解决方案有帮助。我有formValues
类型的数组[String: Any?]
。然后,我需要从Images
键获取值,该值适用于formvalues["Images"]
。然后我将其转换为Data
数组。返回以下错误:Could not cast value of type 'Swift.Set<Foundation.Data>' to 'Swift.Array<Foundation.Data>'
let formvalues = self.form.values()
let images = formvalues["Images"] as! [Data]
答案 0 :(得分:3)
错误消息非常明确:密钥Images
的值为Set
,因此将其转换为集合:
let images = formvalues["Images"] as! Set<Data>
错误消息无法将“Foo”类型的值转换为“Bar”仅表示:
Foo
Bar
PS:如果要求images
为数组,则必须明确创建一个。
let imageSet = formvalues["Images"] as! Set<Data>
let images = Array(imageSet)
答案 1 :(得分:0)
假设您的formvalues是字典:
let formvalues: [String: Any] = self.form.values()
var images: [Data]?
switch formvalues["Images"] {
case let set as Set<Data>:
images = Array(set)
case let array as [Data]:
images = array
default:
images = nil
}