1
resposta

Como faço para passar o retorno do Alamofire para um struct ?

estrutura do JSON

[{
"ID": 9,
"Make": "Chevrolet",
}]


ex:
struct GlobalArray{
   let  id: Int?
   let  make: String?

   init(dictionary: [String: Any]) {

        id        = dictionary["ID"] as? Int
        make      = dictionary["Make"] as? String }


Alamofire.request("JSON.TESTE", method: .get).responseJSON { (response) in
            switch response.result {
            case .success:
                if  let  resposta = response.result.value as? Dictionary<String, Any> {
                    do{
                        let global = GlobalArray(dictionary: resposta)
                        print(global.make!)
                    }

                }
1 resposta

Oi Yannes, tudo bem?

Você poderia criar um método que fizesse a requisição para o alamofire e retornasse o objeto serializado...

Tipo assim:

func requisicaoParaAPI(_ resultado: @escaping ([String: Any]) -> Void) {
        Alamofire.request("JSON.TEST", method: .get).responseJSON { (response) in
            switch response.result {
            case .success:
                // Implementação: ---

                resultado() // PASSAR O RESULTADO NESSA CLOSURE

            case .failure:
                // Tratar caso de falha: ---
            }
        }
    }

Dessa forma, você tira a chamada da API do metodo construtor (toda vez que inicializar a struct você vai querer fazer a chamada da API?), e isola em um método responsável por fazer a chamada da api e retornar o objeto...

Espero ter ajudado...

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software