Ich habe ein Modellauto in meiner iOS-Anwendung, dessen Parameter wie Name, Jahr, Wert usw. von einem Webdienst abgerufen werden, um eine Liste mit Fahrzeugdaten zu füllen.
Wo soll ich die Methode ablegen, die asynchron zum Server geht und ein Array von Autos zurückgibt (diese Methode konvertiert den JSON bereits in ein Auto-Array)?
Mein aktueller Ansatz ist eine statische Methode in meiner Car-Klasse, die einen HttpClient empfängt (damit ich ihn in einem Unit-Test testen kann, der den Client verspottet) und ein NSArray von Autos zurückgibt. Ist das gut?
Was habt ihr in dieser Situation gemacht?
Ich mache mir Sorgen, weil ich kürzlich angefangen habe, sauberen Code zu lesen, der besagt, dass eine Klasse nur eines tun soll, und die Art und Weise, wie ich sie jetzt habe, scheint zwei Dinge zu tun (Informationen über ein Auto halten und eine Liste der Autos erhalten).
quelle
Hier sollte die Aufbewahrung eines anderen Objekts an einem Ort aufbewahrt werden müssen, an dem nicht garantiert werden kann, dass der Elternteil immer am Leben ist, um die Antwort zu verarbeiten.
Ich schlage vor, diese Implementierung in einer Singleton-Klasse zu belassen. Das Beibehalten dieser Klasse ist auch nützlich für einige generische Methodenimplementierungen, die sehr häufig aufgerufen werden können.
quelle
Sie können die asynchrone Methode innerhalb der ViewDidLoad-Methode aufrufen, wenn das Array aus dem Web zurückkehrt. Aktualisieren Sie die Ansicht. Sie können das Array in der Datenbank speichern, sodass Sie nicht jedes Mal Daten aus dem Web laden müssen, wenn der Viewcontroller geladen wird.
quelle