Wpis z mikrobloga

Drogie Mireczki, w ramach nauki piszę prostą aplikację pogodową w Swifcie, jestem początkujący w programowaniu więc proszę o wyrozumiałość. Mam problem z zapisaniem danych pogodowych pobranych z API DarkSky używając CoreLocation.

funkcja getDarkSkyData zapisuje dane pogodowe w zmiennej currentTemp i problem polega na tym że jak chce się do niej dostać w ViewControler (44 linijka) to pokazuje "No data" czyli obiekt jest pusty jednak w DarkSkyData (linijka 29) widzi wszystkie dane pogodowe bez problemu. ¯\_(ツ)_/¯

Ktoś wie dlaczego tak się dzieje?

#swift #ios
Pobierz
źródło: comment_FUPxsuL9XunT3BEurV4FlKd4HTI0mcGf.jpg
  • 5
poważnie:), tak jak pisałem jestem bardzo początkujący, sam nie mogę sobie z tym poradzić. Może chociaż naprowadzisz mnie w czym tkwi problem?
@ideate Asynchroniczność. Twoja metoda getDarkSkyData pobiera asynchronicznie dane z neta i potem zapisuje je do tej zmiennej. Ty do tej zmiennej odwołujesz się od razu. Krótko mówiąc, próbujesz odczytać te dane zanim one się ściągną. Twoja metoda getDarkSkyData powinna jako parametr brać jakiś completionHandler który Ci zwróci te dane byś mógł ich użyć w swoim VC.