Вы можете создать словарь из имени и значения каждого элемента запроса с помощью
let items = urlComponents.queryItems ?? []
let dict = Dictionary(items.lazy.map { ($0.name, $0.value as Any) },
uniquingKeysWith: { $1 })
В случае дублированного имени побеждает более позднее значение (это можно контролировать с помощью параметров uniquingKeysWith:
).
Или удалите приведение as Any
, чтобы получить словарь типа [String: String?]
:
let items = urlComponents.queryItems ?? []
let dict = Dictionary(items.lazy.map { ($0.name, $0.value ) },
uniquingKeysWith: { $1 })
В качестве альтернативы
let items = urlComponents.queryItems ?? []
let dict = Dictionary(items.lazy.map { ($0.name, [$0.value] ) },
uniquingKeysWith: +)
для создания словаря типа[String : [String?]]
, удерживая все значения для каждого имени.