Alamofire 参数只接受 [String : Anyobject]?
Alamofire parameter only accepts [String : Anyobject]?
我正在使用 Alamofire,它是 Swift 中的一个 HTTP 网络库,我正在尝试使用下面的 json 作为请求中的参数发出 PUT 请求,但似乎不喜欢 versions 字段,因为它里面有另一个字典。有没有办法解决这个问题?
var reqJson = [
"asdf": "sdfs",
"lsd": "asdf",
"asdf" : "coc",
"qwer": "sdf",
"cvc": "kljb",
"xcv": "qwe",
"versions": [
[
"version": "\(version)",
"component": "\(compName)"
]
]
]
Alamofire.request(.PUT, baseURL + "/cli/applicationProcessRequest/request", parameters: reqJson, encoding: .JSON).authenticate(user: _user, password: _passwd).responseJSON{
(_,_,data,error) in
completionHandler(error)
}
似乎是这种情况,因为参数应该是 [String : Anyobject] 但另一个字典不是 Anyobject 吗?
您的请求中没有足够的信息让编译器推断出正确的类型(它正在推断 NSDictionary,可能是因为嵌套字典)。只需修改您的声明即可。
let reqJson: Dictionary<String, AnyObject> = [
"asdf": "sdfs",
"lsd": "asdf",
"asdf" : "coc",
"qwer": "sdf",
"cvc": "kljb",
"xcv": "qwe",
"versions": [
[
"version": "abc",
"component": "xyz"
]
]
]
我正在使用 Alamofire,它是 Swift 中的一个 HTTP 网络库,我正在尝试使用下面的 json 作为请求中的参数发出 PUT 请求,但似乎不喜欢 versions 字段,因为它里面有另一个字典。有没有办法解决这个问题?
var reqJson = [
"asdf": "sdfs",
"lsd": "asdf",
"asdf" : "coc",
"qwer": "sdf",
"cvc": "kljb",
"xcv": "qwe",
"versions": [
[
"version": "\(version)",
"component": "\(compName)"
]
]
]
Alamofire.request(.PUT, baseURL + "/cli/applicationProcessRequest/request", parameters: reqJson, encoding: .JSON).authenticate(user: _user, password: _passwd).responseJSON{
(_,_,data,error) in
completionHandler(error)
}
似乎是这种情况,因为参数应该是 [String : Anyobject] 但另一个字典不是 Anyobject 吗?
您的请求中没有足够的信息让编译器推断出正确的类型(它正在推断 NSDictionary,可能是因为嵌套字典)。只需修改您的声明即可。
let reqJson: Dictionary<String, AnyObject> = [
"asdf": "sdfs",
"lsd": "asdf",
"asdf" : "coc",
"qwer": "sdf",
"cvc": "kljb",
"xcv": "qwe",
"versions": [
[
"version": "abc",
"component": "xyz"
]
]
]