Problem beim Herunterladen mehrerer Lieder in der tabBar-Anwendung

8

Ich habe Tabbar-Anwendung, in der ersten Registerkarte habe ich ein WebView, also, wenn Benutzer die Website öffnen und ein Lied MP3-Format herunterladen, drücken Sie eine andere Ansicht, die den Titel vom Benutzer nimmt.

Nachdem ich den Titel eingegeben habe, ändere ich einfach den TabbarSelectController zu einem Titel für den Song und das Herunterladen beginnt und wird in der Tableiste des ausgewählten Index 1 angezeigt. Wenn ich die Registerkarte zum ausgewählten Index 0 wähle und ein anderes Lied zum Herunterladen auswähle und wieder zurück zum ausgewähltenIndex 1, wird der erste Download-Stopp und der zweite Download-Vorgang fortgesetzt.

Ich möchte mehrere Songs herunterladen und habe nicht viel Ahnung, wie man das in diesem Szenario macht, weil User Songs dynamisch hinzufügen. Ich habe ASINtworkQueue auch gesehen, aber ich verstehe nicht, wie das funktioniert.

    
aimzy 30.08.2011, 14:30
quelle

2 Antworten

1

Das ASINetworkQueue ist nur eine Unterklasse von NSOperationQueue , was es tut, ist eine Warteschlange von Request-Objekten zu erstellen, so können Sie zum Beispiel 10 Anfragen warten und 5 Anfragen gleichzeitig bearbeiten, wenn eine Anfrage vorliegt abgeschlossen, wird eine weitere Anfrage in der Warteschlange aktiv.

Eine Warteschlange mit Anfragen ist in Ihrem Fall sicherlich hilfreich, aber Sie haben noch keinen Code eingefügt, der sich auf Ihre Anfragen bezieht. Also werde ich Ihnen ein "allgemeines Konzept" geben, wie es gemacht werden sollte:

Zunächst gehe ich davon aus, dass Sie bereits herausgefunden haben, wie der Benutzer das Lied herunterladen und die URL der Datei haben wird. Wenn nicht, hier ist eine weitere Frage . Außerdem muss ASI installiert haben .

Fügen wir ein Objekt hinzu, das die Downloads behandelt, z. B. DownloadManager:

%Vor%

Ich werde diese Klasse dazu bringen, sich wie ein Singleton zu verhalten ( basierend auf dieser Antwort ), weil ich mir vorstelle, dass Sie mit einer einzigen Download-Warteschlange arbeiten. Wenn dies nicht der Fall ist, passen Sie es an Ihre Bedürfnisse an:

%Vor%

Nachdem Sie alles erledigt haben, können Sie die Download-Anfragen einfach hinzufügen:

%Vor%

Die erste Registerkarte würde die Elemente zur DownloadManager hinzufügen, die andere Registerkarte würde nach dem Abschluss eines Downloads oder dem aktuellen Status hören müssen. Ich habe das nicht in den Code eingefügt, da es davon abhängt, wie Sie diese Dinge tun. Es könnte eine benutzerdefinierte Delegate-Methode sein (zB - (void)DownloadManager:(DownloadManager*)downloadManager didFinishDownloadRequest:(ASIHTTPRequest*)request ) oder den aktuellen Delegaten der Anfragen übergeben oder NSNotificationCenter .

    
Can 30.08.2011 18:03
quelle
1

Ich werde es anders vorschlagen ..

Versuchen Sie, einen Code für den Song-Download in einer anderen Klasse zu erstellen. Iphone O.S. startet automatisch eine neue Verbindung für jedes Objekt dieser Klasse. Jetzt können beide Downloads gleichzeitig fortgesetzt werden.

Es funktioniert wunderbar. Ich habe es gesehen.

    
Aditya Athavale 07.09.2011 04:17
quelle

Tags und Links