字符串不可转换为 String:AnyObject
String is not convertible to String:AnyObject
我正在尝试使用 Alamofire 助手与我的服务器联网。我正在构建一个路由器来处理我的 API 端点。结构本身对我来说似乎很清楚,但我正在为一些 SWIFT 语法而苦苦挣扎。
enum Router:URLRequestConvertible {
static let baseURLString = "url"
case AEDS
var URLRequest: NSURLRequest {
let (path: String, parameters: [String: AnyObject]) = {
switch self {
case .AEDS:
let params = [""]
return("/aeds", params)
}
}()
let URL = NSURL(string: Router.baseURLString)
let URLRequest = NSURLRequest(URL: URL!.URLByAppendingPathComponent(path))
let encoding = Alamofire.ParameterEncoding.URL
return encoding.encode(URLRequest, parameters: parameters).0
}
}
我收到一条消息,在我的案例中 .AEDs 参数抛出错误:
[String] 不可转换为 [String: AnyObject]
我是 Swift 的新手,到目前为止还不知道从哪里开始。我想我提供了我正在定义的数组。那么这个错误是什么意思呢?
在您的 switch case 中,您需要将 params 定义为字典而不是数组。
switch self {
case .AEDS:
let params = [""] <---- This is initialising an array containing a string
return("/aeds", params)
}
尝试更改为:
switch self {
case .AEDS:
let params = ["" : ""] <---- This will create a dict
return("/aeds", params)
}
这应该可以解决您的问题。
我正在尝试使用 Alamofire 助手与我的服务器联网。我正在构建一个路由器来处理我的 API 端点。结构本身对我来说似乎很清楚,但我正在为一些 SWIFT 语法而苦苦挣扎。
enum Router:URLRequestConvertible {
static let baseURLString = "url"
case AEDS
var URLRequest: NSURLRequest {
let (path: String, parameters: [String: AnyObject]) = {
switch self {
case .AEDS:
let params = [""]
return("/aeds", params)
}
}()
let URL = NSURL(string: Router.baseURLString)
let URLRequest = NSURLRequest(URL: URL!.URLByAppendingPathComponent(path))
let encoding = Alamofire.ParameterEncoding.URL
return encoding.encode(URLRequest, parameters: parameters).0
}
}
我收到一条消息,在我的案例中 .AEDs 参数抛出错误: [String] 不可转换为 [String: AnyObject]
我是 Swift 的新手,到目前为止还不知道从哪里开始。我想我提供了我正在定义的数组。那么这个错误是什么意思呢?
在您的 switch case 中,您需要将 params 定义为字典而不是数组。
switch self {
case .AEDS:
let params = [""] <---- This is initialising an array containing a string
return("/aeds", params)
}
尝试更改为:
switch self {
case .AEDS:
let params = ["" : ""] <---- This will create a dict
return("/aeds", params)
}
这应该可以解决您的问题。