[英]In Swift Convert [String: Any!] to URLComponents
我有一本字典 [String: Any,],它的值类似于整数。 浮点数和字符串,当我使用下面的代码创建 URLComponents 时。 它不采用与整数和浮点数相关的值。
func queryItems(dictionary: [String: Any]) -> [URLQueryItem] {
return dictionary.map {
URLQueryItem(name: $0, value: $1 as? String)
}
}
我认为您应该考虑使用[String:String]而不是[String:Any]并将您的值转换为String,然后再将其发送到queryItems函数。但是,如果要这样保留它而不是从值Int,Float进行强制转换,配倍? 字符串总是失败。 您可以使用String()。
显然Any
可以是任何东西。 但是,如果您对输入有一定的控制权,一个简单的选择是转换为LosslessStringConvertible
。 String
、 Substring
和您的基本数字类型都符合它。
警告:
Bool
返回true
或false
。NSObject
不符合这一点,因此如果您混合使用NSNumber
或NSString
,您还需要考虑这些。func queryItems(dictionary: [String: Any]) -> [URLQueryItem] {
dictionary.map {
URLQueryItem(name: $0, value: ($1 as? LosslessStringConvertible)?.description)
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.