在iOS開發(fā)中我們經(jīng)常需要獲取URLString中的參數(shù)值审孽。
以下方法利用URLComponents
實現(xiàn):
extension String {
/// 從 URLString 中截取參數(shù)
var urlParameters: [AnyHashable: Any]? {
/// 解析url
guard let urlComponents = URLComponents(string: self), let queryItems = urlComponents.queryItems else {
return nil
}
var parameters: [AnyHashable: Any] = [:]
/// 遍歷queryItems獲取每一項參數(shù)的鍵值對
queryItems.forEach { (item) in
/// 判斷是否有相同的key
if let existValue = parameters[item.name], let value = item.value {
/// 將相同key的值存入數(shù)組中
if var existValue = existValue as? [Any] {
existValue.append(value)
parameters[item.name] = existValue
} else {
parameters[item.name] = [existValue, value]
}
} else {
parameters[item.name] = item.value
}
}
/// 返回解析后的參數(shù)字典
return parameters
}
}