J'ai une voiture modèle dans mon application iOS où ses paramètres comme le nom, l'année, la valeur, etc. sont récupérés à partir d'un service Web afin de remplir une liste de données sur les voitures.
Où dois-je mettre la méthode qui va de manière asynchrone au serveur et renvoie un tableau de voitures (cette méthode convertit déjà le JSON en tableau de voitures)?
Mon approche actuelle est une méthode statique dans ma classe Car qui reçoit un HttpClient (donc je suis capable de le tester unitaire en se moquant du client) et retourne un NSArray de voitures, est-ce bien?
Qu'avez-vous fait dans cette situation?
Je suis inquiet parce que j'ai récemment commencé à lire du code propre qui dit qu'une classe ne devrait faire qu'une seule chose, et la façon dont je l'ai maintenant semble faire 2 choses (conserver des informations sur une voiture et obtenir une liste de voitures).
la source
Ici, la conservation d'un autre objet doit être conservée quelque part, ce qui ne peut garantir que le parent sera toujours en vie pour traiter la réponse.
Je suggère de conserver ces implémentations dans une classe singleton. Garder cette classe sera également utile pour une implémentation de méthode générique qui peut être appelée très souvent.
la source
Vous pouvez appeler la méthode asynchrone à l'intérieur de la méthode ViewDidLoad lorsque le tableau revient du Web, actualisez la vue.Vous pouvez enregistrer le tableau dans la base de données, vous n'aurez donc pas besoin de charger les données du Web à chaque chargement du Viewcontroller.
la source