在词典扩展中找不到成员 'init'
Could not find member 'init' in a Dictionary extension
我在 this 示例项目中找到了以下代码片段。它需要一个 [String: AnyObject]
字典,转义空格字符并创建一个参数化字符串。
class func escapedParameters(parameters: [String : AnyObject]) -> String {
var urlVars = [String]()
for (key, value) in parameters {
let stringValue = "\(value)"
let escapedValue = stringValue.stringByAddingPercentEncodingWithAllowedCharacters(NSCharacterSet.URLQueryAllowedCharacterSet())
urlVars += [key + "=" + "\(escapedValue!)"]
}
return (!urlVars.isEmpty ? "?" : "") + join("&", urlVars)
}
原代码是一个class函数。我想把它做成字典类型的扩展方法。
extension Dictionary {
func escapedParameters() -> String {
var urlVars = [String]()
for (key, value) in self {
let stringValue = "\(value)"
let escapedValue = stringValue.stringByAddingPercentEncodingWithAllowedCharacters(.URLQueryAllowedCharacterSet())
urlVars += [key + "=" + "\(escapedValue!)"]
}
return (!urlVars.isEmpty ? "?" : "") + join("&", urlVars)
}
}
但是我在这一行 urlVars += [key + "=" + "\(escapedValue!)"]
.
收到以下错误
找不到成员 'init'
我不知道为什么或如何更正此问题。当它是 class 函数时,不会出现此问题。
这样试试:
urlVars.append("\(key)=\(escapedValue!)")
我在 this 示例项目中找到了以下代码片段。它需要一个 [String: AnyObject]
字典,转义空格字符并创建一个参数化字符串。
class func escapedParameters(parameters: [String : AnyObject]) -> String {
var urlVars = [String]()
for (key, value) in parameters {
let stringValue = "\(value)"
let escapedValue = stringValue.stringByAddingPercentEncodingWithAllowedCharacters(NSCharacterSet.URLQueryAllowedCharacterSet())
urlVars += [key + "=" + "\(escapedValue!)"]
}
return (!urlVars.isEmpty ? "?" : "") + join("&", urlVars)
}
原代码是一个class函数。我想把它做成字典类型的扩展方法。
extension Dictionary {
func escapedParameters() -> String {
var urlVars = [String]()
for (key, value) in self {
let stringValue = "\(value)"
let escapedValue = stringValue.stringByAddingPercentEncodingWithAllowedCharacters(.URLQueryAllowedCharacterSet())
urlVars += [key + "=" + "\(escapedValue!)"]
}
return (!urlVars.isEmpty ? "?" : "") + join("&", urlVars)
}
}
但是我在这一行 urlVars += [key + "=" + "\(escapedValue!)"]
.
找不到成员 'init'
我不知道为什么或如何更正此问题。当它是 class 函数时,不会出现此问题。
这样试试:
urlVars.append("\(key)=\(escapedValue!)")