我想将以下内容作为NSURL的扩展而不是函数,但是我遇到的错误是我无法使用变量。我该如何解决这个问题?
该函数获取url的查询字符串,并返回一个字典,其中包含查询中参数的键值对。
func getKeyVals(url:NSURL) -> Dictionary<String, String>{
var results = [String:String]()
var keyValues = url.query?.componentsSeparatedByString("&")
if keyValues?.count > 0 {
for pair in keyValues! {
let kv = pair.componentsSeparatedByString("=")
if kv.count > 1 {
results.updateValue(kv[1], forKey: kv[0])
}
}
}
return results
}
答案 0 :(得分:2)
extension NSURL {
func getKeyVals() -> Dictionary<String, String> {
var results = [String:String]()
let keyValues = query?.componentsSeparatedByString("&")
if keyValues?.count > 0 {
for pair in keyValues! {
let kv = pair.componentsSeparatedByString("=")
if kv.count > 1 {
results.updateValue(kv[1], forKey: kv[0])
}
}
}
return results
}
}
if let checkedUrl = NSURL(string: "http://www.domain.com/index.php?device=iPad&capacity=128GB&color=white"){
let keyVals = checkedUrl.getKeyVals() // ["color": "white", "device": "iPad", "capacity": "128GB"]
}