我之前的Swift / Alamofire版本的旧代码在
之前运行良好parameters = ["name":name, "description":description, "location":location, "start_time":start_time , "end_time":end_time/* ..etc */] as [String: AnyObject]
Alamofire.request(.PUT, url, parameters: parameters, encoding: .json, headers: ["Authorization": auth_token, AppVersionKey: AppVersionValue]).validate().responseJSON() { response in
print("Status code of default pic call: \(response.response?.statusCode)")
}
我知道我现在必须将其切换到
Alamofire.request(url, method: .put, ... , encoding: JSONEncoding.default ...)
但是我收到了parameters
的Xcode错误和修复 - 它只是将as AnyObject
添加到k,v对中的每个值,然后导致"表达式太复杂了,无法在合理的时间内解决......"错误。我怎么能用新的Swift3和Alamofire4做到这一点?甚至不确定这是Swift错误还是Alamofire迁移问题
答案 0 :(得分:1)
您将parameters
的文字类型[String: Any]
转换为[String: AnyObject]
,这就是编译器抱怨的原因。
如果您在作业结束时删除演员表并将parameters
的类型更新为[String: Any]
,那么它应该有效。
这是由于Swift 3的更改,它基本上取代了AnyObject
与Any
的许多以前的用途,因此结构和枚举也将被接受。