1
我試圖爲Alamofire 4.0定義自定義模型序列化。到目前爲止,我遵循responseJson
和朋友使用的模型。具體來說,我至今是:自定義序列化在Alamofire 4.0中找到不正確的「響應」
extension Alamofire.Request {
public static func serializeResponseModel<T:ModelObject>(response:HTTPURLResponse?, data:Data?, error:Error?) -> Alamofire.Result<T> {
switch serializeResponseJSON(options: [], response: response, data: data, error: error) {
case .success(let jsonObject):
do {
return .success(try T(json:jsonObject as! JSONObject))
}
catch {
return .failure(error)
}
case .failure(let error):
return .failure(error)
}
}
}
extension Alamofire.DataRequest {
public static func serializeResponseModel<T:ModelObject>() -> DataResponseSerializer<T> {
return DataResponseSerializer { _, response, data, error in
return Request.serializeResponseConcierge(response: response, data: data, error: error)
}
}
@discardableResult
public func responseModel<T:ModelObject>(queue: DispatchQueue? = nil, completionHandler: @escaping (DataResponse<T>) -> Void) -> Self
{
return response(
queue: queue,
responseSerializer: DataRequest.serializeResponseModel(),
completionHandler: completionHandler
)
}
}
不幸的是,框架在某種程度上執行不力而行return response(
是找到response
屬性(在Request
定義),並沒有相應的response
方法(在DataRequest
定義)這會導致編譯錯誤:
Cannot call value of non-function type 'HTTPURLResponse?'
我是什麼在這裏失蹤,讓這個在responseJson
情況下工作,但不是在我的情況?