我有一个字典[字符串:任何!],其值像整数,浮点和字符串。当我使用以下代码创建URLCOLENTS时,它不使用与整数和浮点有关的值。
func queryItems(dictionary: [String: Any]) -> [URLQueryItem] {
return dictionary.map {
URLQueryItem(name: $0, value: $1 as? String)
}
}
我认为您应该考虑使用[string:string]而不是[string:nyan],然后将您的值转换为字符串,然后将其发送到QueryItems函数。但是如果您想离开像这样比从value int,float,double as as as as as as as as as as as as as as as as as as as as as as a的。字符串总是失败。您可以使用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)
}
}