Audio-streaming, NSTimer en parsing JSON-scenario

Overweeg het volgende scenario.

Een app die audiostream afspeelt. Dan is er de Now Playing-weergave, met de artiest en de titel van het nummer, de albumhoes van het huidige nummer en ook de naam van de producent, naast een kleine beschrijving en afbeelding. Allemaal afkomstig van een JSON-bestand.

Om te weten wanneer het JSON-bestand inderdaad is gewijzigd, is er een extra .crc-bestand met de tijdstempel/code van de laatst gewijzigde JSON. Wanneer de inhoud van de .crc is gewijzigd, is het tijd om de JSON bij te werken.

Dus ik laat elke 10sec een NSTimer afvuren en opent een NSURLConnection die uiteindelijk de gegevens van het .crc-bestand retourneert. Op de connectionDidFinish controleer ik of de code is veranderd ten opzichte van de vorige en als de voorwaarde waar is laad ik de JSON en uiteindelijk analyseer ik de gegevens.

Mijn vraag is hier of deze 10sec-timer met de NSURLConnection te veel is voor de app? Gezien het feit dat de constante audiostream wordt afgespeeld. Natuurlijk stopt de timer als de app de achtergrond invoert. En wanneer ik de app op de voorgrond zet, laad ik de JSON met kracht om de weergave bij te werken en de timer opnieuw te starten.

Ook de nu afgespeelde weergave is toegewezen aan een zelf.nowplayingview ivar (eenmalig gemaakt) van de root view-controller en het zelfgespeelde weergave wordt naar de stapel geduwd. Op deze manier kan ik de Now Playing-weergave bijwerken vanuit de root-weergave, wanneer er een wijziging is in de JSON.

Denk je dat ik elke keer de Now Playing-weergave moet maken en pushen?

Bij voorbaat dank.

0
Je zou beter af zijn met een NSThread dan met een NSTimer denk ik, zodat de code om de JSON bij te werken nog steeds op de achtergrond wordt uitgevoerd.
toegevoegd de auteur Richard J. Ross III, de bron
@ RichardJ.RossIII - Bedankt, ik zal NSThread proberen en zien hoe het gaat.
toegevoegd de auteur Dimitris, de bron

1 antwoord

Waarom niet gewoon de bestaande Now Playing View met de nieuwe informatie wijzigen? Ik ben het er ook mee eens dat dit waarschijnlijk in een achtergrondthread moet worden gedaan (zoals Richard Ross hierboven heeft vermeld), of ervoor kan zorgen dat de aanroep asynchroon wordt gedaan, zodat de app/interface niet traag en niet reageert.

0
toegevoegd
Beide aanroepen voor het .crc- en het json-bestand zijn asynchroon. Ik zal proberen over te schakelen op NSThread in plaats van NSTimer om te zien hoe het gaat. Bedankt.
toegevoegd de auteur Dimitris, de bron