Миграция AFNetworking 2.x на 3.x отсутствует объект данных, чтобы иметь возможность декодировать - PullRequest
0 голосов
/ 05 июля 2018

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

Спасибо.

...