我有一个URL进入AppDelegate方法:
func application(_ application: UIApplication, open url: URL, sourceApplication: String?, annotation: Any) -> Bool {
}
字符串
URL看起来像www.wesite.com/shareplace.html?placeid=123
。
如何将其转换为字典以方便访问?
我在一些网站上找到了一些代码,但它在Xcode 9中显示错误:
extension URL {
var queryDictionary: [String: AnyObject]? {
return URLComponents(url: self, resolvingAgainstBaseURL: false)?
.queryItems?
.reduce([:], combine: { (var result: [String: AnyObject], queryItem) -> [String: AnyObject] in
if queryItem.value?.containsString(",") ?? false {
let array = queryItem.value?.componentsSeparatedByString(",")
result[queryItem.name] = array
}
else {
result[queryItem.name] = queryItem.value
}
return result
})
}
}
型.reduce([:], combine: { (var result: [String: AnyObject], queryItem) -> [String: AnyObject] in
(var result)参数不能有“var”说明符
7条答案
按热度按时间jv2fixgn1#
简单扩展
字符串
用途
型
2jcobegt2#
下面是一个使用Swift reduce函数的例子。这将把一个像'key1=value1&key2=value2&key3=value3'这样的字符串变成一个字典。
字符串
thigvfpy3#
详细数据
解决方案
字符串
用法
型
完整样本
型
完整样本输出
型
lzfw57am4#
Swift 5.5.3
字符串
希望有帮助!
monwx1rj5#
使用.first(where:)
字符串
bbmckpt76#
我喜欢这种方法,其中
[URLQueryItem]
本身是扩展的。字符串
它可以这样使用:
型
de90aj5v7#
试试这个替代:
字符串