Другой способ сделать это состоит в том, чтобы создать расширение на URL, чтобы возвратить компоненты и затем создать расширение на [URLQueryItem] для получения значения от queryItems.
extension URL {
var components: URLComponents? {
return URLComponents(url: self, resolvingAgainstBaseURL: false)
}
}
extension Array where Iterator.Element == URLQueryItem {
subscript(_ key: String) -> String? {
return first(where: { [110].name == key })?.value
}
}
И это - пример того, как это могло использоваться:
if let urlComponents = URL(string: "http://mysite3994.com?test1=blah&test2=blahblah")?.components,
let test1Value = urlComponents.queryItems?["test1"] {
print(test1Value)
}