在Swift转换[字符串:任何!]到URLCOMPONENTS中



我有一个字典[字符串:任何!],其值像整数,浮点和字符串。当我使用以下代码创建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可能是什么。但是,如果您对输入有一定的控制权,那么一个简单的选择就是将其投入到LosslessStringConvertibleStringSubstring和您的基本数字类型都符合它。

警告:

  • Bool返回truefalse
  • NSObject不符合这一点,因此,如果您在NSNumberNSString中进行混合,则需要考虑这些。
func queryItems(dictionary: [String: Any]) -> [URLQueryItem] {
    dictionary.map {
        URLQueryItem(name: $0, value: ($1 as? LosslessStringConvertible)?.description)
    }
}

最新更新