[英]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.