Я мигрирую AFNetworking
с 2.x на 3.x, но столкнулся с проблемой, которую не могу понять, как исправить.
С помощью AFNetworking 2.x
я смог получить данные об ответе и использовать их для декодирования их в мой объект примерно так:
api.get(userListPath, parameters: parameters, success: { (operation, _) in
guard let data = operation.responseData else {
let localizedFailureReason = "No data"
handler(CustomObject.failure(XError.init(xErrorWithCode: XErrorCode.xErrorServer.rawValue, localizedFailureReason: localizedFailureReason)))
return
}
do {
let decoder = JSONDecoder()
let response = try decoder.decode(CustomObjectResponse.self, from: data)
handler(CustomObjectResponse.success(response.likes))
} catch let err {
let responseError = ResponseError.parsing(reason: err.localizedDescription)
Crashlytics.sharedInstance().recordError(err)
handler(CustomObjectResponse.failure(XError(xErrorWithCode: XErrorCode.xErrorServer.rawValue, localizedFailureReason: responseError.localizedDescription)))
return
}
}, failure: { (operation, error) in
handler(CustomObject.failure(error))
})
Но теперь, поскольку AFNetworking
больше не использует NSOperation
, у меня нет возможности получить данные для их декодирования.
Я чувствую, что упускаю что-то ключевое или важное, но не могу понять, что это такое.
Во всех примерах, которые я видел до сих пор для миграции (или даже в Руководстве по миграции), просто используйте responseObject
, поэтому изменение будет не таким уж большим.
Любая помощь будет высоко ценится.
Спасибо.