![](/img/trans.png)
[英]How to add a key value pair to a dictionary of type [String:AnyObject] in Swift?
[英]In dictionary key value pair, how to unwrap value, where value can be different sorts of types, to String
Eureka 表单值返回可选值,因此我想在每个值中迭代并展开它们。 但是,这些值由 Double、Int、String 组成。 我如何将它们解包为字符串?
let wrapped = self.formValues()
var unwrapped = [String:Any]()
for (k,v) in wrapped {
unwrapped[k] = v as! String ?? ""
}
return unwrapped
我收到此错误:
Could not cast value of type 'Swift.Double' (0x7fff879c1a10) to 'Swift.String' (0x7fff879c41c8).
代替
v as! String ?? ""
和
String(v)
我不确定您到底想要什么,但我认为您正在尝试将 [String: Any?] 转换为 [String: Any]
let unwrapped: [String: Any] = wrapped.mapValues { $0 ?? "" }
或者
let unwrapped: [String: String] = wrapped.mapValues { (value) -> String in
guard let value = value as? LosslessStringConvertible else {
return ""
}
return "\(value)"
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.