Tengo un modelo de automóvil en mi aplicación iOS donde sus parámetros como nombre, año, valor, etc. se obtienen de un servicio web para completar una lista con los datos de los automóviles.
¿Dónde debo poner el método que asincrónicamente va al servidor y devuelve una matriz de automóviles (este método ya convierte el JSON en una matriz de automóviles)?
Mi enfoque actual es un método estático en mi clase de Automóvil que recibe un HttpClient (por lo que puedo probarlo burlándose del cliente) y devuelve una NSArray de automóviles, ¿es bueno?
¿Qué han hecho ustedes en esta situación?
Estoy preocupado porque recientemente comencé a leer código limpio que dice que una Clase debería hacer solo una cosa, y la forma en que lo hago ahora parece hacer 2 cosas (mantener información sobre un automóvil y obtener una lista de automóviles).
fuente
Aquí, mantener otro objeto debería ser retenido en algún lugar que no pueda garantizarse que el padre siempre estará vivo para procesar la respuesta.
Sugiero mantener estas implementaciones en una clase singleton. Mantener esta clase también será útil para la implementación de algunos métodos genéricos que se pueden llamar con mucha frecuencia.
fuente
Puede llamar al método asincrónico dentro del método ViewDidLoad cuando la matriz regrese de la web, actualice la vista. Puede guardar la matriz en la base de datos, por lo que no necesitará cargar datos de la web cada vez que se cargue el controlador de vista.
fuente