3
當我更新到Alamofire v4時,出現了兩個錯誤。Alamofire v4使用未聲明的類型響應
第一種是使用未聲明的類型的響應這是我從這個線得到的:
func responseSavedAdsArray(_ completionHandler: (Response<SavedAdsWrapper, NSError>) ->
第二個錯誤是使用未解析標識符ResponseSerializer這是我從這個線得到的:
let responseSerializer = ResponseSerializer<SavedAdsWrapper, NSError> { request, response, data, error in
這裏是我的代碼:
extension Alamofire.Request {
func responseSavedArray(_ completionHandler: (Response<SavedWrapper, NSError>) -> Void) -> Self {
let responseSerializer = ResponseSerializer<SavedWrapper, NSError> { request, response, data, error in
guard error == nil else {
return .Failure(error!)
}
guard let responseData = data else {
let failureReason = "Array could not be serialized because input data was nil."
let userInfo: Dictionary<NSObject, AnyObject> = [NSLocalizedFailureReasonErrorKey: failureReason, Error.UserInfoKeys.StatusCode: response!.statusCode]
let error = NSError(domain: Error.Domain, code: Error.Code.StatusCodeValidationFailed.rawValue, userInfo: userInfo)
return .Failure(error)
}
let JSONResponseSerializer = Request.JSONResponseSerializer(options: .AllowFragments)
let result = JSONResponseSerializer.serializeResponse(request, response, responseData, error)
switch result {
case .Success(let value):
let json = JSON(value)
let wrapper = SavedWrapper()
wrapper.next = json["saveditems"]["next_page_url"].stringValue
wrapper.previous = json["saveditems"]["prev_page_url"].stringValue
wrapper.count = json["saveditems"]["total"].intValue
var allSaved:Array = Array<Saved>()
print(json)
let results = json["saveditems"]["data"]
print(results)
for jsonAdata in results
{
let adsJData = SavedAds(json: jsonAdata.1, id: Int(jsonAdata.0))
allSaved.append(adsJData)
}
wrapper.saveditems = allSaved
return .Success(wrapper)
case .Failure(let error):
return .Failure(error)
}
}
return response(responseSerializer: responseSerializer,
completionHandler: completionHandler)
}
}
那麼是什麼原因造成的?
修復了第一個錯誤,但我仍然得到:使用未解析的標識符ResponseSerializer – user2636197
是不是也一樣呢?嘗試DataResponseSerializer :) –
Cruz
我的不好!是一個錯字:) – user2636197