我正在尝试使用最新(4.0)版本的Alamofire和AlamofireObjectMapper为请求创建通用方法。我从下面的代码开始:
func execute<T>(request : Request, completionHandler: @escaping (DataResponse<T>) -> Void){
let url: URLConvertible = baseURL + request.path
Alamofire.request(url, method: request.method, parameters: request.parameters()).responseObject(completionHandler: { (response: DataResponse<T>) in
completionHandler(response)
})
}
但我得到错误:
无法转换'DataResponse - &gt;类型的值无法预料到的 参数类型'DataResponse - &gt;无效“
这有什么问题?我想这样使用它:
func login(loginRequest: LoginRequest, completionHandler: @escaping (DataResponse<LoginResponse>) -> Void) {
self.execute(request: loginRequest, completionHandler: { response in
completionHandler(response)
})
}
感谢您的帮助
答案 0 :(得分:1)
Alamofire 4的语法已经迁移到Swift 3。
Alamofire.request(url,
method: .get,
parameters: parameter,
encoding: URLEncoding.default,
headers: nil)
.response(completionHandler: { (defaultDataResponse) in
// do something with the response
print(defaultDataResponse)
})