Я использую 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 здесь для правильного сопоставления с желаемым объектом ответа