繁体   English   中英

在 Swift 中将 [String: Any!] 转换为 URLComponents

[英]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 StringSubstring和您的基本数字类型都符合它。

警告:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM