How do I convert url.query to a dictionary in Swift?

前端 未结 6 1505
不知归路
不知归路 2021-02-09 02:06

I have a URL coming in to the AppDelegate method:

func application(_ application: UIApplication, open url: URL, sourceApplication: String?, annotation: Any) ->         


        
6条回答
  •  野的像风
    2021-02-09 02:32

    Try this alternatively:

    extension URL {
        var queryDictionary: [String: AnyObject]? {
            return URLComponents(url: self, resolvingAgainstBaseURL: false)?
                .queryItems?
                .reduce([:], combine: { (lastResult: [String: AnyObject], queryItem) -> [String: AnyObject] in
                    var result = lastResult
                    if queryItem.value?.containsString(",") ?? false {
                        let array = queryItem.value?.componentsSeparatedByString(",")
    
                        result[queryItem.name] = array
                    }
                    else {
                        result[queryItem.name] = queryItem.value
                    }
    
                    return result
                })
        }
    }
    

提交回复
热议问题