Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios Alamofire和AlamoFireObject映射器创建通用函数_Ios_Swift_Generics_Swift3_Alamofire - Fatal编程技术网

Ios Alamofire和AlamoFireObject映射器创建通用函数

Ios Alamofire和AlamoFireObject映射器创建通用函数,ios,swift,generics,swift3,alamofire,Ios,Swift,Generics,Swift3,Alamofire,我正在尝试使用最新(4.0)版本的Alamofire和AlamoFileObject Mapper为请求创建通用方法。我从下面的代码开始: func execute<T>(request : Request, completionHandler: @escaping (DataResponse<T>) -> Void){ let url: URLConvertible = baseURL + request.path Alamofire.req

我正在尝试使用最新(4.0)版本的Alamofire和AlamoFileObject Mapper为请求创建通用方法。我从下面的代码开始:

  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)
    })
  }
func执行(请求:请求,completionHandler:@escaping(DataResponse)->Void){
让url:URLConvertible=baseURL+request.path
请求(url,方法:request.method,参数:request.parameters()).responseObject(completionHandler:{(响应:DataResponse))中的
completionHandler(响应)
})
}
但我得到了一个错误:

无法将“DataResponse->Void”类型的值转换为预期值 参数类型“DataResponse->Void”

这有什么问题吗?我想这样使用它:

  func login(loginRequest: LoginRequest, completionHandler: @escaping (DataResponse<LoginResponse>) -> Void) {
    self.execute(request: loginRequest, completionHandler: { response in
      completionHandler(response)
    })
  }
func登录(loginRequest:loginRequest,completionHandler:@escaping(DataResponse)->Void){
execute(请求:loginRequest,completionHandler:{响应在
completionHandler(响应)
})
}

感谢您的帮助

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)
        })

我用Swift 3语法将语法更改为Alamofire 4。这没有问题。