Eu tenho um modelo de carro no meu aplicativo iOS, onde parâmetros como nome, ano, valor etc. são buscados em um serviço da web para preencher uma lista com dados de carros.
Onde devo colocar o método que vai de forma assíncrona ao servidor e retorna uma matriz de carros (esse método já converte o JSON em uma matriz de carros)?
Minha abordagem atual é um método estático na minha classe Car que recebe um HttpClient (para que eu possa testá-lo com zombaria do cliente) e retorna um NSArray de carros, isso é bom?
O que vocês fizeram nessa situação?
Estou preocupado porque recentemente comecei a ler um código limpo, que diz que uma classe deve fazer apenas uma coisa, e o jeito que eu faço agora parece fazer duas coisas (mantenha informações sobre um carro e obtenha uma lista de carros).
fonte
Aqui, manter outro objeto deve ser mantido em algum lugar que não possa ser garantido que o pai sempre estará vivo para processar a resposta.
Sugiro manter essas implementações em uma classe singleton. Manter essa classe também será útil para alguma implementação genérica de método que pode ser chamada com muita frequência.
fonte
Você pode chamar o método assíncrono dentro do método ViewDidLoad quando a matriz retornar da Web, atualizar a exibição. Você pode salvar a matriz no banco de dados, para que você não precise carregar dados da Web toda vez que o Viewcontroller carregar.
fonte