Alamofire 参数只接受 [String : Anyobject]?
Posted
技术标签:
【中文标题】Alamofire 参数只接受 [String : Anyobject]?【英文标题】:Alamofire parameter only accepts [String : Anyobject]? 【发布时间】:2015-07-30 20:41:12 【问题描述】:我正在使用 Alamofire,它是 Swift 中的一个 HTTP 网络库,我正在尝试使用下面的 json 作为请求中的参数来发出 PUT 请求,但它似乎不喜欢版本字段,因为它有里面的另一本字典。有没有办法解决这个问题?
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 吗?
【问题讨论】:
【参考方案1】:您的请求中没有足够的信息让编译器推断出正确的类型(它推断的是 NSDictionary,可能是因为嵌套字典)。只需修改您的声明即可帮助解决问题。
let reqJson: Dictionary<String, AnyObject> = [
"asdf": "sdfs",
"lsd": "asdf",
"asdf" : "coc",
"qwer": "sdf",
"cvc": "kljb",
"xcv": "qwe",
"versions": [
[
"version": "abc",
"component": "xyz"
]
]
]
【讨论】:
以上是关于Alamofire 参数只接受 [String : Anyobject]?的主要内容,如果未能解决你的问题,请参考以下文章
在 swift 中使用 alamofire 发送 JSON 数组作为参数
无法在 Alamofire 4.0 中使用类型为“(String,withName:String)”的参数列表调用“附加”