W mojej aplikacji na iOS mam model samochodu, w którym parametry takie jak nazwa, rok, wartość itp. Są pobierane z serwisu internetowego w celu wypełnienia listy danymi samochodów.
Gdzie powinienem umieścić metodę, która asynchronicznie idzie na serwer i zwraca tablicę samochodów (ta metoda już przekształca JSON w tablicę Car)?
Moje obecne podejście jest metodą statyczną w mojej klasie samochodów, która odbiera HttpClient (więc jestem w stanie przetestować jednostkę, kpiąc z klienta) i zwraca tablicę NSArray samochodów, czy to dobrze?
Co zrobiliście w tej sytuacji?
Martwię się, ponieważ ostatnio zacząłem czytać czysty kod, który mówi, że Klasa powinna robić tylko jedną rzecz, a sposób, w jaki ją mam, wydaje się teraz robić dwie rzeczy (przechowywać informacje o samochodzie i uzyskać listę samochodów).
źródło
Tutaj trzymanie innego obiektu powinno być przechowywane gdzieś, co nie może być zagwarantowane, że rodzic zawsze będzie żył, aby przetworzyć odpowiedź.
Sugeruję, aby zachować tę implementację w klasie singleton. Utrzymanie tej klasy przyda się również przy implementacji metod ogólnych, które można wywoływać bardzo często.
źródło
Możesz wywołać metodę asynchroniczną w metodzie ViewDidLoad, gdy tablica powróci z sieci, odśwież widok. Możesz zapisać tablicę w bazie danych, więc nie będziesz musiał ładować danych z sieci za każdym razem, gdy ładuje się Viewcontroller.
źródło