Использование атрибута функции при обратном вызове swift - PullRequest
0 голосов
/ 29 марта 2020

Я использую alamofire с сопоставителем объектов, чем мне нужно передать тип ответа по атрибуту метода:

static func makeRequest(url: String, completion: ActionAny?, error: ActionAny?, finally: ActionAny? , typedResponse: DataResponse<BaseResponse>.Type ) {

   Alamofire.request(url, method: .get, parameters: nil, encoding: JSONEncoding.default, headers: nil).responseObject { (response: DataResponse<BaseResponse>) in
    let data = response.result.value
    let code = response.response?.statusCode ?? 0

      if code == 200 {
        completion?(data)
      } else if code == 401 {
        <... SOME CODE ... >
      } else {
        error?(nil)
      }

      finally?(nil)
   }

}

Когда я пытаюсь использовать typedResponse в качестве типа ответа, он говорит undeclared typedResponse, как я могу сделать что-то подобное?

static func makeRequest(url: String, completion: ActionAny?, error: ActionAny?, finally: ActionAny? , typedResponse: DataResponse<BaseResponse>.Type ) {

   Alamofire.request(url, method: .get, parameters: nil, encoding: JSONEncoding.default, headers: nil).responseObject { (response: typedResponse ) in
        <... SOME CODE ... >
   }
}

responseObject { (response: typedResponse ) in typedResponse здесь для правильного сопоставления с желаемым объектом ответа

...