es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

(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>

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Parece que podría haber un problema al usar el operador print() en el método .sink al recibir datos con Alamofire y Combine. En lugar de usar print(), puedes intentar usar el método debugPrint() 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 marco Combine.

    ¡Espero que esto ayude!

Comments are closed.