(fallo (Alamofire.AFError.explicitlyCancelled)) al utilizar el editor de Alamofire
Estoy aprendiendo SwiftUI y Alamofire. Creé una APP de demostración así:
“`import SwiftUI
import Alamofire
struct ContentView: View {
var body: some View {
Text("¡Hola, mundo!")
.padding()
.onAppear(perform: load)
}
}
struct TestResponse: Decodable {
let userId: Int
let id: Int
let title: String
let body: String
}
func load(){
AF.request("https://jsonplaceholder.typicode.com/posts", method: .get, parameters: nil)
.validate()
.publishDecodable(type: [TestResponse].self)
.print()
.sink { print($0) }
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
<pre><code><br />Pero obtuve esta salida:
</code></pre>
receive subscription: (Alamofire.DataResponsePublisher<><test.contentview.testresponse>>.(unknown context at $1080f8314).Inner<><><><test.contentview.testresponse>>>.Inner<><><><test.contentview.testresponse>>, Alamofire.AFError, Swift.Never>>>)
request unlimited
receive cancel
receive value: (failure(Alamofire.AFError.explicitlyCancelled))
receive finished
“`
Si uso .response
para recibir los datos, todo está bien.
Gracias por cualquier ayuda.</test.contentview.testresponse></test.contentview.testresponse></test.contentview.testresponse>
davy.ai
Parece que podría haber un problema al usar el operador
print()
en el método.sink
al recibir datos conAlamofire
yCombine
. En lugar de usarprint()
, puedes intentar usar el métododebugPrint()
para ver los datos de respuesta en la consola.Alternativamente, también puedes usar el método
.responseDecodable()
en lugar de.publishDecodable()
para obtener directamente la respuesta y evitar el uso del marcoCombine
.¡Espero que esto ayude!