Я пытаюсь выполнить запрос к серверу, использующему Alamofire, следующий код хорошо работал в Xcode 11 beta 2, но, начиная с версии beta 3, я получаю сообщение об ошибке
Member 'init' in 'AnyPublisher<Root, APIServiceError>' produces result of type 'AnyPublisher<Output, Failure>', but context expects 'AnyPublisher<Root, APIServiceError>'
func getResponse(from url: URL) -> AnyPublisher<Root, APIServiceError> {
return .init { subscriber in
Alamofire.request(url.absoluteString)
.responseData { response in
switch response.result {
case .success:
do {
let serverResponse = try JSONDecoder().decode(Root.self, from: response.data!)
_ = subscriber.receive(serverResponse)
} catch (let error) {
subscriber.receive(completion: .failure(.parseError(error)))
}
case .failure(let error):
subscriber.receive(completion: .failure(.responseError))
}
}
}
}
Они изменили init
для AnyPublisher
на
public struct AnyPublisher<Output, Failure> where Failure : Error {
/// Creates a type-erasing publisher to wrap the provided publisher.
///
/// - Parameters:
/// - publisher: A publisher to wrap with a type-eraser.
@inlinable public init<P>(_ publisher: P) where Output == P.Output, Failure == P.Failure, P : Publisher
}
, но я не мог понять, как его использовать ....